Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Mar 2017 05:54:28 +0000
From:      "jhujhiti_adjectivism.org (Erick Turnquist)" <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] D9451: Constrain IPv6 interface routes to each FIB
Message-ID:  <b0d313e58e33da16a81af0fc9092492c@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_b0d313e58e33da16a81af0fc9092492c
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

amh1amhpdGlfYWRqZWN0aXZpc20ub3JnIHVwZGF0ZWQgdGhpcyByZXZpc2lvbiB0byBEaWZmIDI2
MDUzLgpqaHVqaGl0aV9hZGplY3RpdmlzbS5vcmcgbWFya2VkIDE0IGlubGluZSBjb21tZW50cyBh
cyBkb25lLgoKUkVQT1NJVE9SWQogIHJTIEZyZWVCU0Qgc3JjIHJlcG9zaXRvcnkKCkNIQU5HRVMg
U0lOQ0UgTEFTVCBVUERBVEUKICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvRDk0NTE/dnM9
MjYwMjImaWQ9MjYwNTMKClJFVklTSU9OIERFVEFJTAogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNk
Lm9yZy9EOTQ1MQoKQUZGRUNURUQgRklMRVMKICBzeXMvbmV0aW5ldDYvaWNtcDYuYwogIHN5cy9u
ZXRpbmV0Ni9pbjYuYwogIHN5cy9uZXRpbmV0Ni9pbjZfc3JjLmMKICBzeXMvbmV0aW5ldDYvbmQ2
LmMKICBzeXMvbmV0aW5ldDYvbmQ2LmgKICBzeXMvbmV0aW5ldDYvbmQ2X25ici5jCiAgc3lzL25l
dGluZXQ2L25kNl9ydHIuYwogIHRlc3RzL3N5cy9uZXRpbmV0L2ZpYnNfdGVzdC5zaAoKRU1BSUwg
UFJFRkVSRU5DRVMKICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvc2V0dGluZ3MvcGFuZWwv
ZW1haWxwcmVmZXJlbmNlcy8KClRvOiBqaHVqaGl0aV9hZGplY3RpdmlzbS5vcmcsICNuZXR3b3Jr
LCBieiwgYXNvbWVycwpDYzogamNoLCBieiwgaW1wLCBhZSwgZnJlZWJzZC1uZXQtbGlzdAo=

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

ZGlmZiAtLWdpdCBhL3Rlc3RzL3N5cy9uZXRpbmV0L2ZpYnNfdGVzdC5zaCBiL3Rlc3RzL3N5cy9u
ZXRpbmV0L2ZpYnNfdGVzdC5zaAotLS0gYS90ZXN0cy9zeXMvbmV0aW5ldC9maWJzX3Rlc3Quc2gK
KysrIGIvdGVzdHMvc3lzL25ldGluZXQvZmlic190ZXN0LnNoCkBAIC0xNjMsNyArMTYzLDYgQEAK
IAogbG9vcGJhY2tfYW5kX25ldHdvcmtfcm91dGVzX29uX25vbmRlZmF1bHRfZmliX2luZXQ2X2Jv
ZHkoKQogewotCWF0Zl9leHBlY3RfZmFpbCAiUFIxOTYzNjEgSVB2NiBuZXR3b3JrIHJvdXRlcyBk
b24ndCByZXNwZWN0IG5ldC5hZGRfYWRkcl9hbGxmaWJzPTAiCiAJIyBDb25maWd1cmUgdGhlIFRB
UCBpbnRlcmZhY2UgdG8gdXNlIGEgbm9ucm91dGVhYmxlIFJGQzM4NDkKIAkjIGFkZHJlc3MgYW5k
IGEgbm9uLWRlZmF1bHQgZmliCiAJQUREUj0iMjAwMTpkYjg6OjIiCkBAIC00NTksOCArNDU4LDYg
QEAKIAlTVUJORVQ9IjIwMDE6ZGI4OiIKIAlNQVNLPSI2NCIKIAotCWF0Zl9leHBlY3RfZmFpbCAi
UFIxOTYzNjEgSVB2NiBuZXR3b3JrIHJvdXRlcyBkb24ndCByZXNwZWN0IG5ldC5hZGRfYWRkcl9h
bGxmaWJzPTAiCi0KIAkjIENoZWNrIHN5c3RlbSBjb25maWd1cmF0aW9uCiAJaWYgWyAwICE9IGBz
eXNjdGwgLW4gbmV0LmFkZF9hZGRyX2FsbGZpYnNgIF07IHRoZW4KIAkJYXRmX3NraXAgIlRoaXMg
dGVzdCByZXF1aXJlcyBuZXQuYWRkX2FkZHJfYWxsZmlicz0wIgpAQCAtNDc3LDYgKzQ3NCw3IEBA
CiAKIAkjIENvbmZpZ3VyZSBlcGFpciBpbnRlcmZhY2VzCiAJZ2V0X2VwYWlyCisJc2xlZXAgMQog
CXNldHVwX2lmYWNlICIkRVBBSVJBIiAiJEZJQjAiIGluZXQ2ICR7QUREUn0gJHtNQVNLfQogCWVj
aG8gaWZjb25maWcgIiRFUEFJUkIiIHVwIGluZXQ2IGZpYiAkRklCMSAtaWZkaXNhYmxlZCBhY2Nl
cHRfcnRhZHYKIAlpZmNvbmZpZyAiJEVQQUlSQiIgaW5ldDYgLWlmZGlzYWJsZWQgYWNjZXB0X3J0
YWR2IGZpYiAkRklCMSB1cApAQCAtNjg1LDggKzY4Myw2IEBACiAJVEFSR0VUPSIyMDAxOmRiODo6
MTAwIgogCVNSQ0RJUj1gYXRmX2dldF9zcmNkaXJgCiAKLQlhdGZfZXhwZWN0X2ZhaWwgIlBSMTk2
MzYxIElQdjYgbmV0d29yayByb3V0ZXMgZG9uJ3QgcmVzcGVjdCBuZXQuYWRkX2FkZHJfYWxsZmli
cz0wIgotCiAJIyBDaGVjayBzeXN0ZW0gY29uZmlndXJhdGlvbgogCWlmIFsgMCAhPSBgc3lzY3Rs
IC1uIG5ldC5hZGRfYWRkcl9hbGxmaWJzYCBdOyB0aGVuCiAJCWF0Zl9za2lwICJUaGlzIHRlc3Qg
cmVxdWlyZXMgbmV0LmFkZF9hZGRyX2FsbGZpYnM9MCIKQEAgLTc2Nyw3ICs3NjMsNyBAQAogCWxv
Y2FsIEVQQUlSRAogCiAJaWYgRVBBSVJEPWBpZmNvbmZpZyBlcGFpciBjcmVhdGVgOyB0aGVuCi0J
CSMgUmVjb3JkIHRoZSBUQVAgZGV2aWNlIHNvIHdlIGNhbiBjbGVhbiBpdCB1cCBsYXRlcgorCQkj
IFJlY29yZCB0aGUgZXBhaXIgZGV2aWNlIHNvIHdlIGNhbiBjbGVhbiBpdCB1cCBsYXRlcgogCQll
Y2hvICR7RVBBSVJEfSA+PiAiaWZhY2VzX3RvX2NsZWFudXAiCiAJCUVQQUlSQT0ke0VQQUlSRH0K
IAkJRVBBSVJCPSR7RVBBSVJEJWF9YgpkaWZmIC0tZ2l0IGEvc3lzL25ldGluZXQ2L25kNl9ydHIu
YyBiL3N5cy9uZXRpbmV0Ni9uZDZfcnRyLmMKLS0tIGEvc3lzL25ldGluZXQ2L25kNl9ydHIuYwor
KysgYi9zeXMvbmV0aW5ldDYvbmQ2X3J0ci5jCkBAIC01MDAsNyArNTAwLDcgQEAKIAogCWVycm9y
ID0gaW42X3J0cmVxdWVzdChSVE1fQURELCAoc3RydWN0IHNvY2thZGRyICopJmRlZiwKIAkgICAg
KHN0cnVjdCBzb2NrYWRkciAqKSZnYXRlLCAoc3RydWN0IHNvY2thZGRyICopJm1hc2ssCi0JICAg
IFJURl9HQVRFV0FZLCAmbmV3cnQsIFJUX0RFRkFVTFRfRklCKTsKKwkgICAgUlRGX0dBVEVXQVks
ICZuZXdydCwgbmV3LT5pZnAtPmlmX2ZpYik7CiAJaWYgKG5ld3J0KSB7CiAJCW5kNl9ydG1zZyhS
VE1fQURELCBuZXdydCk7IC8qIHRlbGwgdXNlciBwcm9jZXNzICovCiAJCVJURlJFRShuZXdydCk7
CkBAIC01NTEsOCArNTUxLDggQEAKIAogLyoKICAqIFJlbW92ZSB0aGUgZGVmYXVsdCByb3V0ZSBm
b3IgYSBnaXZlbiByb3V0ZXIuCi0gKiBUaGlzIGlzIGp1c3QgYSBzdWJyb3V0aW5lIGZ1bmN0aW9u
IGZvciBkZWZyb3V0ZXJfc2VsZWN0KCksIGFuZCBzaG91bGQKLSAqIG5vdCBiZSBjYWxsZWQgZnJv
bSBhbnl3aGVyZSBlbHNlLgorICogVGhpcyBpcyBqdXN0IGEgc3Vicm91dGluZSBmdW5jdGlvbiBm
b3IgZGVmcm91dGVyX3NlbGVjdF9maWIoKSwgYW5kCisgKiBzaG91bGQgbm90IGJlIGNhbGxlZCBm
cm9tIGFueXdoZXJlIGVsc2UuCiAgKi8KIHN0YXRpYyB2b2lkCiBkZWZyb3V0ZXJfZGVscmVxKHN0
cnVjdCBuZF9kZWZyb3V0ZXIgKmRyKQpAQCAtNTcxLDcgKzU3MSw3IEBACiAKIAlpbjZfcnRyZXF1
ZXN0KFJUTV9ERUxFVEUsIChzdHJ1Y3Qgc29ja2FkZHIgKikmZGVmLAogCSAgICAoc3RydWN0IHNv
Y2thZGRyICopJmdhdGUsCi0JICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikmbWFzaywgUlRGX0dBVEVX
QVksICZvbGRydCwgUlRfREVGQVVMVF9GSUIpOworCSAgICAoc3RydWN0IHNvY2thZGRyICopJm1h
c2ssIFJURl9HQVRFV0FZLCAmb2xkcnQsIGRyLT5pZnAtPmlmX2ZpYik7CiAJaWYgKG9sZHJ0KSB7
CiAJCW5kNl9ydG1zZyhSVE1fREVMRVRFLCBvbGRydCk7CiAJCVJURlJFRShvbGRydCk7CkBAIC02
OTgsMTEgKzY5OCwxMSBAQAogCiAJLyoKIAkgKiBJZiB0aGUgcm91dGVyIGlzIHRoZSBwcmltYXJ5
IG9uZSwgY2hvb3NlIGEgbmV3IG9uZS4KLQkgKiBOb3RlIHRoYXQgZGVmcm91dGVyX3NlbGVjdCgp
IHdpbGwgcmVtb3ZlIHRoZSBjdXJyZW50IGdhdGV3YXkKLQkgKiBmcm9tIHRoZSByb3V0aW5nIHRh
YmxlLgorCSAqIE5vdGUgdGhhdCBkZWZyb3V0ZXJfc2VsZWN0X2ZpYigpIHdpbGwgcmVtb3ZlIHRo
ZSBjdXJyZW50CisgICAgICAgICAqIGdhdGV3YXkgZnJvbSB0aGUgcm91dGluZyB0YWJsZS4KIAkg
Ki8KIAlpZiAoZGVsZHIpCi0JCWRlZnJvdXRlcl9zZWxlY3QoKTsKKwkJZGVmcm91dGVyX3NlbGVj
dF9maWIoZGVsZHItPmlmcC0+aWZfZmliKTsKIAogCS8qCiAJICogUmVsZWFzZSB0aGUgbGlzdCBy
ZWZlcmVuY2UuCkBAIC03MzAsMTMgKzczMCwyMyBAQAogICogZXZlbiB3aGVuIHRoZSBtdWx0aXBh
dGggcm91dGluZyBpcyBhdmFpbGFibGUsIGJlY2F1c2Ugd2UncmUgbm90IHN1cmUgYWJvdXQKICAq
IHRoZSBiZW5lZml0cyBmb3Igc3R1YiBob3N0cyBjb21wYXJpbmcgdG8gdGhlIHJpc2sgb2YgbWFr
aW5nIHRoZSBjb2RlCiAgKiBjb21wbGljYXRlZCBhbmQgdGhlIHBvc3NpYmlsaXR5IG9mIGludHJv
ZHVjaW5nIGJ1Z3MuCisgKgorICogV2UgbWFpbnRhaW4gYSBzaW5nbGUgbGlzdCBvZiByb3V0ZXJz
IGZvciBtdWx0aXBsZSBGSUJzLCBvbmx5IGNvbnNpZGVyaW5nIG9uZQorICogYXQgYSB0aW1lIGJh
c2VkIG9uIHRoZSByZWNlaXZpbmcgaW50ZXJmYWNlJ3MgRklCLiBJZiBAZmlibnVtIGlzIFJUX0FM
TF9GSUJTLAorICogd2UgZG8gdGhlIHdob2xlIHRoaW5nIG11bHRpcGxlIHRpbWVzLgogICovCiB2
b2lkCi1kZWZyb3V0ZXJfc2VsZWN0KHZvaWQpCitkZWZyb3V0ZXJfc2VsZWN0X2ZpYihpbnQgZmli
bnVtKQogewogCXN0cnVjdCBuZF9kZWZyb3V0ZXIgKmRyLCAqc2VsZWN0ZWRfZHIsICppbnN0YWxs
ZWRfZHI7CiAJc3RydWN0IGxsZW50cnkgKmxuID0gTlVMTDsKIAorCWlmIChmaWJudW0gPT0gUlRf
QUxMX0ZJQlMpIHsKKwkJZm9yIChmaWJudW0gPSAwOyBmaWJudW0gPCBydF9udW1maWJzOyBmaWJu
dW0rKykgeworCQkJZGVmcm91dGVyX3NlbGVjdF9maWIoZmlibnVtKTsKKwkJfQorCX0KKwogCU5E
Nl9STE9DSygpOwogCS8qCiAJICogTGV0J3MgaGFuZGxlIGVhc3kgY2FzZSAoMykgZmlyc3Q6CkBA
IC03NTUsNyArNzY1LDcgQEAKIAlzZWxlY3RlZF9kciA9IGluc3RhbGxlZF9kciA9IE5VTEw7CiAJ
VEFJTFFfRk9SRUFDSChkciwgJlZfbmRfZGVmcm91dGVyLCBkcl9lbnRyeSkgewogCQlJRl9BRkRB
VEFfUkxPQ0soZHItPmlmcCk7Ci0JCWlmIChzZWxlY3RlZF9kciA9PSBOVUxMICYmCisJCWlmIChz
ZWxlY3RlZF9kciA9PSBOVUxMICYmIGRyLT5pZnAtPmlmX2ZpYiA9PSBmaWJudW0gJiYKIAkJICAg
IChsbiA9IG5kNl9sb29rdXAoJmRyLT5ydGFkZHIsIDAsIGRyLT5pZnApKSAmJgogCQkgICAgTkQ2
X0lTX0xMSU5GT19QUk9CUkVBQ0gobG4pKSB7CiAJCQlzZWxlY3RlZF9kciA9IGRyOwpAQCAtNzY3
LDE0ICs3NzcsMTcgQEAKIAkJCWxuID0gTlVMTDsKIAkJfQogCi0JCWlmIChkci0+aW5zdGFsbGVk
KSB7CisJCWlmIChkci0+aW5zdGFsbGVkICYmIGRyLT5pZnAtPmlmX2ZpYiA9PSBmaWJudW0pIHsK
IAkJCWlmIChpbnN0YWxsZWRfZHIgPT0gTlVMTCkgewogCQkJCWluc3RhbGxlZF9kciA9IGRyOwog
CQkJCWRlZnJvdXRlcl9yZWYoaW5zdGFsbGVkX2RyKTsKIAkJCX0gZWxzZSB7Ci0JCQkJLyogdGhp
cyBzaG91bGQgbm90IGhhcHBlbi4gIHdhcm4gZm9yIGRpYWdub3Npcy4gKi8KLQkJCQlsb2coTE9H
X0VSUiwKLQkJICAgICJkZWZyb3V0ZXJfc2VsZWN0OiBtb3JlIHRoYW4gb25lIHJvdXRlciBpcyBp
bnN0YWxsZWRcbiIpOworCQkJCS8qCisJCQkJICogdGhpcyBzaG91bGQgbm90IGhhcHBlbi4KKwkJ
CQkgKiB3YXJuIGZvciBkaWFnbm9zaXMuCisJCQkJICovCisJCQkJbG9nKExPR19FUlIsICJkZWZy
b3V0ZXJfc2VsZWN0X2ZpYjogbW9yZSB0aGFuICIKKwkJCQkgICAgICAgICAgICAgIm9uZSByb3V0
ZXIgaXMgaW5zdGFsbGVkXG4iKTsKIAkJCX0KIAkJfQogCX0KQEAgLTc4OSwxNCArODAyLDI0IEBA
CiAJaWYgKHNlbGVjdGVkX2RyID09IE5VTEwpIHsKIAkJaWYgKGluc3RhbGxlZF9kciA9PSBOVUxM
IHx8CiAJCSAgICBUQUlMUV9ORVhUKGluc3RhbGxlZF9kciwgZHJfZW50cnkpID09IE5VTEwpCi0J
CQlzZWxlY3RlZF9kciA9IFRBSUxRX0ZJUlNUKCZWX25kX2RlZnJvdXRlcik7CisJCQlkciA9IFRB
SUxRX0ZJUlNUKCZWX25kX2RlZnJvdXRlcik7CiAJCWVsc2UKLQkJCXNlbGVjdGVkX2RyID0gVEFJ
TFFfTkVYVChpbnN0YWxsZWRfZHIsIGRyX2VudHJ5KTsKLQkJZGVmcm91dGVyX3JlZihzZWxlY3Rl
ZF9kcik7CisJCQlkciA9IFRBSUxRX05FWFQoaW5zdGFsbGVkX2RyLCBkcl9lbnRyeSk7CisKKwkJ
LyogRW5zdXJlIHdlIHNlbGVjdCBhIHJvdXRlciBmb3IgdGhpcyBGSUIuICovCisJCVRBSUxRX0ZP
UkVBQ0hfRlJPTShkciwgJlZfbmRfZGVmcm91dGVyLCBkcl9lbnRyeSkgeworCQkJaWYgKGRyLT5p
ZnAtPmlmX2ZpYiA9PSBmaWJudW0pIHsKKwkJCQlzZWxlY3RlZF9kciA9IGRyOworCQkJCWRlZnJv
dXRlcl9yZWYoc2VsZWN0ZWRfZHIpOworCQkJCWJyZWFrOworCQkJfQorCQl9CiAJfSBlbHNlIGlm
IChpbnN0YWxsZWRfZHIgIT0gTlVMTCkgewogCQlJRl9BRkRBVEFfUkxPQ0soaW5zdGFsbGVkX2Ry
LT5pZnApOwotCQlpZiAoKGxuID0gbmQ2X2xvb2t1cCgmaW5zdGFsbGVkX2RyLT5ydGFkZHIsIDAs
IGluc3RhbGxlZF9kci0+aWZwKSkgJiYKKwkJaWYgKChsbiA9IG5kNl9sb29rdXAoJmluc3RhbGxl
ZF9kci0+cnRhZGRyLCAwLAorCQkgICAgICAgICAgICAgICAgICAgICBpbnN0YWxsZWRfZHItPmlm
cCkpICYmCiAJCSAgICBORDZfSVNfTExJTkZPX1BST0JSRUFDSChsbikgJiYKKwkJICAgIGluc3Rh
bGxlZF9kci0+aWZwLT5pZl9maWIgPT0gZmlibnVtICYmCiAJCSAgICBydHByZWYoc2VsZWN0ZWRf
ZHIpIDw9IHJ0cHJlZihpbnN0YWxsZWRfZHIpKSB7CiAJCQlkZWZyb3V0ZXJfcmVsZShzZWxlY3Rl
ZF9kcik7CiAJCQlzZWxlY3RlZF9kciA9IGluc3RhbGxlZF9kcjsKQEAgLTgwOCwxOCArODMxLDMw
IEBACiAJTkQ2X1JVTkxPQ0soKTsKIAogCS8qCi0JICogSWYgdGhlIHNlbGVjdGVkIHJvdXRlciBp
cyBkaWZmZXJlbnQgdGhhbiB0aGUgaW5zdGFsbGVkIG9uZSwKLQkgKiByZW1vdmUgdGhlIGluc3Rh
bGxlZCByb3V0ZXIgYW5kIGluc3RhbGwgdGhlIHNlbGVjdGVkIG9uZS4KLQkgKiBOb3RlIHRoYXQg
dGhlIHNlbGVjdGVkIHJvdXRlciBpcyBuZXZlciBOVUxMIGhlcmUuCisJICogSWYgd2Ugc2VsZWN0
ZWQgYSByb3V0ZXIgZm9yIHRoaXMgRklCIGFuZCBpdCdzIGRpZmZlcmVudAorCSAqIHRoYW4gdGhl
IGluc3RhbGxlZCBvbmUsIHJlbW92ZSB0aGUgaW5zdGFsbGVkIHJvdXRlciBhbmQKKwkgKiBpbnN0
YWxsIHRoZSBzZWxlY3RlZCBvbmUgaW4gaXRzIHBsYWNlLgogCSAqLwogCWlmIChpbnN0YWxsZWRf
ZHIgIT0gc2VsZWN0ZWRfZHIpIHsKIAkJaWYgKGluc3RhbGxlZF9kciAhPSBOVUxMKSB7CiAJCQlk
ZWZyb3V0ZXJfZGVscmVxKGluc3RhbGxlZF9kcik7CiAJCQlkZWZyb3V0ZXJfcmVsZShpbnN0YWxs
ZWRfZHIpOwogCQl9Ci0JCWRlZnJvdXRlcl9hZGRyZXEoc2VsZWN0ZWRfZHIpOworCQlpZiAoc2Vs
ZWN0ZWRfZHIgIT0gTlVMTCkKKwkJCWRlZnJvdXRlcl9hZGRyZXEoc2VsZWN0ZWRfZHIpOwogCX0K
LQlkZWZyb3V0ZXJfcmVsZShzZWxlY3RlZF9kcik7CisJaWYgKHNlbGVjdGVkX2RyICE9IE5VTEwp
CisJCWRlZnJvdXRlcl9yZWxlKHNlbGVjdGVkX2RyKTsKK30KKworLyoKKyAqIE1haW50YWluIG9s
ZCBLUEkgZm9yIGRlZmF1bHQgcm91dGVyIHNlbGVjdGlvbi4KKyAqIElmIHVuc3BlY2lmaWVkLCB3
ZSBjYW4gcmUtc2VsZWN0IHJvdXRlcnMgZm9yIGFsbCBGSUJzLgorICovCit2b2lkCitkZWZyb3V0
ZXJfc2VsZWN0KHZvaWQpCit7CisJZGVmcm91dGVyX3NlbGVjdF9maWIoUlRfQUxMX0ZJQlMpOwog
fQogCiAvKgpAQCAtOTQyLDcgKzk3Nyw3IEBACiAJVl9uZDZfbGlzdF9nZW5pZCsrOwogCU5ENl9X
VU5MT0NLKCk7CiAKLQlkZWZyb3V0ZXJfc2VsZWN0KCk7CisJZGVmcm91dGVyX3NlbGVjdF9maWIo
bmV3LT5pZnAtPmlmX2ZpYik7CiAKIAlyZXR1cm4gKG4pOwogfQpAQCAtMTczMSw3ICsxNzY2LDcg
QEAKIAlzdHJ1Y3QgcnRlbnRyeSAqcnQ7CiAJc3RydWN0IHNvY2thZGRyX2luNiBtYXNrNjsKIAl1
X2xvbmcgcnRmbGFnczsKLQlpbnQgZXJyb3IsIGFfZmFpbHVyZSwgZmlibnVtOworCWludCBlcnJv
ciwgYV9mYWlsdXJlLCBmaWJudW0sIG1heGZpYjsKIAogCS8qCiAJICogaW42X2lmaW5pdCgpIHNl
dHMgbmQ2X3J0cmVxdWVzdCB0byBpZmFfcnRyZXF1ZXN0IGZvciBhbGwgaWZhZGRycy4KQEAgLTE3
NDIsOCArMTc3NywxNSBAQAogCW1hc2s2LnNpbjZfYWRkciA9IHByLT5uZHByX21hc2s7CiAJcnRm
bGFncyA9IChpZmEtPmlmYV9mbGFncyAmIH5JRkFfUlRTRUxGKSB8IFJURl9VUDsKIAorCWlmKFZf
cnRfYWRkX2FkZHJfYWxsZmlicykgeworCQlmaWJudW0gPSAwOworCQltYXhmaWIgPSBydF9udW1m
aWJzOworCX0gZWxzZSB7CisJCWZpYm51bSA9IGlmYS0+aWZhX2lmcC0+aWZfZmliOworCQltYXhm
aWIgPSBmaWJudW0gKyAxOworCX0KIAlhX2ZhaWx1cmUgPSAwOwotCWZvciAoZmlibnVtID0gMDsg
ZmlibnVtIDwgcnRfbnVtZmliczsgZmlibnVtKyspIHsKKwlmb3IgKDsgZmlibnVtIDwgbWF4Zmli
OyBmaWJudW0rKykgewogCiAJCXJ0ID0gTlVMTDsKIAkJZXJyb3IgPSBpbjZfcnRyZXF1ZXN0KFJU
TV9BREQsCkBAIC0xODMxLDYgKzE4NzMsMTAgQEAKIAkJaWYgKChvcHItPm5kcHJfc3RhdGVmbGFn
cyAmIE5EUFJGX09OTElOSykgPT0gMCkKIAkJCWNvbnRpbnVlOwogCisJCWlmICghVl9ydF9hZGRf
YWRkcl9hbGxmaWJzICYmCisJCSAgICBvcHItPm5kcHJfaWZwLT5pZl9maWIgIT0gcHItPm5kcHJf
aWZwLT5pZl9maWIpCisJCQljb250aW51ZTsKKwogCQlpZiAob3ByLT5uZHByX3BsZW4gPT0gcHIt
Pm5kcHJfcGxlbiAmJgogCQkgICAgaW42X2FyZV9wcmVmaXhfZXF1YWwoJnByLT5uZHByX3ByZWZp
eC5zaW42X2FkZHIsCiAJCSAgICAmb3ByLT5uZHByX3ByZWZpeC5zaW42X2FkZHIsIHByLT5uZHBy
X3BsZW4pKSB7CkBAIC0xODkxLDcgKzE5MzcsNyBAQAogCXN0cnVjdCBydGVudHJ5ICpydDsKIAlj
aGFyIGlwNmJ1ZltJTkVUNl9BRERSU1RSTEVOXTsKIAl1aW50NjRfdCBnZW5pZDsKLQlpbnQgZmli
bnVtLCBhX2ZhaWx1cmU7CisJaW50IGZpYm51bSwgbWF4ZmliLCBhX2ZhaWx1cmU7CiAKIAlORDZf
T05MSU5LX0xPQ0tfQVNTRVJUKCk7CiAJTkQ2X1VOTE9DS19BU1NFUlQoKTsKQEAgLTE5MDksOCAr
MTk1NSwxNiBAQAogCW1hc2s2LnNpbjZfbGVuID0gc2l6ZW9mKHNhNik7CiAJYmNvcHkoJnByLT5u
ZHByX21hc2ssICZtYXNrNi5zaW42X2FkZHIsIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKTsKIAor
CWlmIChWX3J0X2FkZF9hZGRyX2FsbGZpYnMpIHsKKwkJZmlibnVtID0gMDsKKwkJbWF4ZmliID0g
cnRfbnVtZmliczsKKwl9IGVsc2UgeworCQlmaWJudW0gPSBpZnAtPmlmX2ZpYjsKKwkJbWF4Zmli
ID0gZmlibnVtICsgMTsKKwl9CisKIAlhX2ZhaWx1cmUgPSAwOwotCWZvciAoZmlibnVtID0gMDsg
ZmlibnVtIDwgcnRfbnVtZmliczsgZmlibnVtKyspIHsKKwlmb3IgKDsgZmlibnVtIDwgbWF4Zmli
OyBmaWJudW0rKykgewogCQlydCA9IE5VTEw7CiAJCWVycm9yID0gaW42X3J0cmVxdWVzdChSVE1f
REVMRVRFLCAoc3RydWN0IHNvY2thZGRyICopJnNhNiwgTlVMTCwKIAkJICAgIChzdHJ1Y3Qgc29j
a2FkZHIgKikmbWFzazYsIDAsICZydCwgZmlibnVtKTsKZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0
Ni9uZDZfbmJyLmMgYi9zeXMvbmV0aW5ldDYvbmQ2X25ici5jCi0tLSBhL3N5cy9uZXRpbmV0Ni9u
ZDZfbmJyLmMKKysrIGIvc3lzL25ldGluZXQ2L25kNl9uYnIuYwpAQCAtMjYyLDggKzI2Miw3IEBA
CiAJCWJ6ZXJvKCZpbmZvLCBzaXplb2YoaW5mbykpOwogCQlpbmZvLnJ0aV9pbmZvW1JUQVhfR0FU
RVdBWV0gPSAoc3RydWN0IHNvY2thZGRyICopJnJ0X2dhdGV3YXk7CiAKLQkJLyogQWx3YXlzIHVz
ZSB0aGUgZGVmYXVsdCBGSUIuICovCi0JCWlmIChyaWJfbG9va3VwX2luZm8oUlRfREVGQVVMVF9G
SUIsIChzdHJ1Y3Qgc29ja2FkZHIgKikmZHN0NiwKKwkJaWYgKHJpYl9sb29rdXBfaW5mbyhpZnAt
PmlmX2ZpYiwgKHN0cnVjdCBzb2NrYWRkciAqKSZkc3Q2LAogCQkgICAgMCwgMCwgJmluZm8pID09
IDApIHsKIAkJCWlmICgoaW5mby5ydGlfZmxhZ3MgJiBSVEZfQU5OT1VOQ0UpICE9IDAgJiYKIAkJ
CSAgICBydF9nYXRld2F5LnNkbF9mYW1pbHkgPT0gQUZfTElOSykgewpAQCAtNDg1LDcgKzQ4NCw3
IEBACiAJCQl1aW50MzJfdCBzY29wZWlkOwogCiAJCQlpbjZfc3BsaXRzY29wZSgmaXA2LT5pcDZf
ZHN0LCAmZHN0NiwgJnNjb3BlaWQpOwotCQkJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoUlRf
REVGQVVMVF9GSUIsICZkc3Q2LAorCQkJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoZmlibnVt
LCAmZHN0NiwKIAkJCSAgICBzY29wZWlkLCBpZnAsICZzcmM2LCBOVUxMKTsKIAkJCWlmIChlcnJv
cikgewogCQkJCWNoYXIgaXA2YnVmW0lORVQ2X0FERFJTVFJMRU5dOwpAQCAtOTgyLDcgKzk4MSw3
IEBACiAJICogU2VsZWN0IGEgc291cmNlIHdob3NlIHNjb3BlIGlzIHRoZSBzYW1lIGFzIHRoYXQg
b2YgdGhlIGRlc3QuCiAJICovCiAJaW42X3NwbGl0c2NvcGUoJmRhZGRyNiwgJmRzdDYsICZzY29w
ZWlkKTsKLQllcnJvciA9IGluNl9zZWxlY3RzcmNfYWRkcihSVF9ERUZBVUxUX0ZJQiwgJmRzdDYs
CisJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoZmlibnVtLCAmZHN0NiwKIAkgICAgc2NvcGVp
ZCwgaWZwLCAmc3JjNiwgTlVMTCk7CiAJaWYgKGVycm9yKSB7CiAJCWNoYXIgaXA2YnVmW0lORVQ2
X0FERFJTVFJMRU5dOwpkaWZmIC0tZ2l0IGEvc3lzL25ldGluZXQ2L25kNi5oIGIvc3lzL25ldGlu
ZXQ2L25kNi5oCi0tLSBhL3N5cy9uZXRpbmV0Ni9uZDYuaAorKysgYi9zeXMvbmV0aW5ldDYvbmQ2
LmgKQEAgLTQ2OSw2ICs0NjksNyBAQAogdm9pZCBuZDZfcnNfaW5wdXQoc3RydWN0IG1idWYgKiwg
aW50LCBpbnQpOwogdm9pZCBuZDZfcmFfaW5wdXQoc3RydWN0IG1idWYgKiwgaW50LCBpbnQpOwog
dm9pZCBkZWZyb3V0ZXJfcmVzZXQodm9pZCk7Cit2b2lkIGRlZnJvdXRlcl9zZWxlY3RfZmliKGlu
dCBmaWJudW0pOwogdm9pZCBkZWZyb3V0ZXJfc2VsZWN0KHZvaWQpOwogdm9pZCBkZWZyb3V0ZXJf
cmVmKHN0cnVjdCBuZF9kZWZyb3V0ZXIgKik7CiB2b2lkIGRlZnJvdXRlcl9yZWxlKHN0cnVjdCBu
ZF9kZWZyb3V0ZXIgKik7CmRpZmYgLS1naXQgYS9zeXMvbmV0aW5ldDYvbmQ2LmMgYi9zeXMvbmV0
aW5ldDYvbmQ2LmMKLS0tIGEvc3lzL25ldGluZXQ2L25kNi5jCisrKyBiL3N5cy9uZXRpbmV0Ni9u
ZDYuYwpAQCAtMTU3LDYgKzE1Nyw3IEBACiAJc3RydWN0IHNvY2thZGRyX2RsIGd3OwogCXN0cnVj
dCBpZm5ldCAqaWZwOwogCWludCB0eXBlOworCWludCBmaWJudW07CiAKIAlMTEVfV0xPQ0tfQVNT
RVJUKGxsZSk7CiAKQEAgLTE5NCw4ICsxOTUsOSBAQAogCXJ0aW5mby5ydGlfaW5mb1tSVEFYX0RT
VF0gPSAoc3RydWN0IHNvY2thZGRyICopJmRzdDsKIAlydGluZm8ucnRpX2luZm9bUlRBWF9HQVRF
V0FZXSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikmZ3c7CiAJcnRpbmZvLnJ0aV9hZGRycyA9IFJUQV9E
U1QgfCBSVEFfR0FURVdBWTsKKwlmaWJudW0gPSBWX3J0X2FkZF9hZGRyX2FsbGZpYnMgPyBSVF9B
TExfRklCUyA6IGlmcC0+aWZfZmliOwogCXJ0X21pc3Ntc2dfZmliKHR5cGUsICZydGluZm8sIFJU
Rl9IT1NUIHwgUlRGX0xMREFUQSB8ICgKLQkgICAgdHlwZSA9PSBSVE1fQUREID8gUlRGX1VQOiAw
KSwgMCwgUlRfREVGQVVMVF9GSUIpOworCSAgICB0eXBlID09IFJUTV9BREQgPyBSVEZfVVA6IDAp
LCAwLCBmaWJudW0pOwogfQogCiAvKgpAQCAtMTIwMCw3ICsxMjAyLDcgQEAKIAogCWlmIChORF9J
RklORk8oaWZwKS0+ZmxhZ3MgJiBORDZfSUZGX0FDQ0VQVF9SVEFEVikgewogCQkvKiBSZWZyZXNo
IGRlZmF1bHQgcm91dGVyIGxpc3QuICovCi0JCWRlZnJvdXRlcl9zZWxlY3QoKTsKKwkJZGVmcm91
dGVyX3NlbGVjdF9maWIoaWZwLT5pZl9maWIpOwogCX0KIH0KIApAQCAtMTI1Myw3ICsxMjU1LDcg
QEAKIG5kNl9pc19uZXdfYWRkcl9uZWlnaGJvcihjb25zdCBzdHJ1Y3Qgc29ja2FkZHJfaW42ICph
ZGRyLCBzdHJ1Y3QgaWZuZXQgKmlmcCkKIHsKIAlzdHJ1Y3QgbmRfcHJlZml4ICpwcjsKLQlzdHJ1
Y3QgaWZhZGRyICpkc3RhZGRyOworCXN0cnVjdCBpZmFkZHIgKmlmYTsKIAlzdHJ1Y3QgcnRfYWRk
cmluZm8gaW5mbzsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW42IHJ0X2tleTsKIAljb25zdCBzdHJ1Y3Qg
c29ja2FkZHIgKmRzdDY7CkBAIC0xMjg3LDkgKzEyODksNiBAQAogCWJ6ZXJvKCZpbmZvLCBzaXpl
b2YoaW5mbykpOwogCWluZm8ucnRpX2luZm9bUlRBWF9EU1RdID0gKHN0cnVjdCBzb2NrYWRkciAq
KSZydF9rZXk7CiAKLQkvKiBBbHdheXMgdXNlIHRoZSBkZWZhdWx0IEZJQiBoZXJlLiBYWE1FIC0g
d2h5PyAqLwotCWZpYm51bSA9IFJUX0RFRkFVTFRfRklCOwotCiAJLyoKIAkgKiBJZiB0aGUgYWRk
cmVzcyBtYXRjaGVzIG9uZSBvZiBvdXIgYWRkcmVzc2VzLAogCSAqIGl0IHNob3VsZCBiZSBhIG5l
aWdoYm9yLgpAQCAtMTMwMywxOSArMTMwMiwzMSBAQAogCQkJY29udGludWU7CiAKIAkJaWYgKChw
ci0+bmRwcl9zdGF0ZWZsYWdzICYgTkRQUkZfT05MSU5LKSA9PSAwKSB7Ci0JCQkvKiBBbHdheXMg
dXNlIHRoZSBkZWZhdWx0IEZJQiBoZXJlLiAqLwogCQkJZHN0NiA9IChjb25zdCBzdHJ1Y3Qgc29j
a2FkZHIgKikmcHItPm5kcHJfcHJlZml4OwogCi0JCQlnZW5pZCA9IFZfbmQ2X2xpc3RfZ2VuaWQ7
Ci0JCQlORDZfUlVOTE9DSygpOwotCi0JCQkvKiBSZXN0b3JlIGxlbmd0aCBmaWVsZCBiZWZvcmUg
cmV0cnlpbmcgbG9va3VwICovCi0JCQlydF9rZXkuc2luNl9sZW4gPSBzaXplb2YocnRfa2V5KTsK
LQkJCWVycm9yID0gcmliX2xvb2t1cF9pbmZvKGZpYm51bSwgZHN0NiwgMCwgMCwgJmluZm8pOwor
CQkJLyoKKwkJCSAqIFdlIG9ubHkgbmVlZCB0byBjaGVjayBhbGwgRklCcyBpZiBhZGRfYWRkcl9h
bGxmaWJzCisJCQkgKiBpcyB1bnNldC4gSWYgc2V0LCBjaGVja2luZyBhbnkgRklCIHdpbGwgc3Vm
ZmljZS4KKwkJCSAqLworCQkJZmlibnVtID0gVl9ydF9hZGRfYWRkcl9hbGxmaWJzID8gcnRfbnVt
ZmlicyAtIDEgOiAwOworCQkJZm9yICg7IGZpYm51bSA8IHJ0X251bWZpYnM7IGZpYm51bSsrKSB7
CisJCQkJZ2VuaWQgPSBWX25kNl9saXN0X2dlbmlkOworCQkJCU5ENl9SVU5MT0NLKCk7CiAKLQkJ
CU5ENl9STE9DSygpOwotCQkJaWYgKGdlbmlkICE9IFZfbmQ2X2xpc3RfZ2VuaWQpCi0JCQkJZ290
byByZXN0YXJ0OworCQkJCS8qCisJCQkJICogUmVzdG9yZSBsZW5ndGggZmllbGQgYmVmb3JlCisJ
CQkJICogcmV0cnlpbmcgbG9va3VwCisJCQkJICovCisJCQkJcnRfa2V5LnNpbjZfbGVuID0gc2l6
ZW9mKHJ0X2tleSk7CisJCQkJZXJyb3IgPSByaWJfbG9va3VwX2luZm8oZmlibnVtLCBkc3Q2LCAw
LCAwLAorCQkJCQkJICAgICAgICAmaW5mbyk7CisKKwkJCQlORDZfUkxPQ0soKTsKKwkJCQlpZiAo
Z2VuaWQgIT0gVl9uZDZfbGlzdF9nZW5pZCkKKwkJCQkJZ290byByZXN0YXJ0OworCQkJCWlmIChl
cnJvciA9PSAwKQorCQkJCQlicmVhazsKKwkJCX0KIAkJCWlmIChlcnJvciAhPSAwKQogCQkJCWNv
bnRpbnVlOwogCkBAIC0xMzQ2LDEzICsxMzU3LDE4IEBACiAJICogSWYgdGhlIGFkZHJlc3MgaXMg
YXNzaWduZWQgb24gdGhlIG5vZGUgb2YgdGhlIG90aGVyIHNpZGUgb2YKIAkgKiBhIHAycCBpbnRl
cmZhY2UsIHRoZSBhZGRyZXNzIHNob3VsZCBiZSBhIG5laWdoYm9yLgogCSAqLwotCWRzdGFkZHIg
PSBpZmFfaWZ3aXRoZHN0YWRkcigoY29uc3Qgc3RydWN0IHNvY2thZGRyICopYWRkciwgUlRfQUxM
X0ZJQlMpOwotCWlmIChkc3RhZGRyICE9IE5VTEwpIHsKLQkJaWYgKGRzdGFkZHItPmlmYV9pZnAg
PT0gaWZwKSB7Ci0JCQlpZmFfZnJlZShkc3RhZGRyKTsKLQkJCXJldHVybiAoMSk7CisJaWYgKGlm
cC0+aWZfZmxhZ3MgJiBJRkZfUE9JTlRPUE9JTlQpIHsKKwkJSUZfQUREUl9STE9DSyhpZnApOwor
CQlUQUlMUV9GT1JFQUNIKGlmYSwgJmlmcC0+aWZfYWRkcmhlYWQsIGlmYV9saW5rKSB7CisJCQlp
ZiAoaWZhLT5pZmFfYWRkci0+c2FfZmFtaWx5ICE9IGFkZHItPnNpbjZfZmFtaWx5KQorCQkJCWNv
bnRpbnVlOworCQkJaWYgKGlmYS0+aWZhX2RzdGFkZHIgIT0gTlVMTCAmJgorCQkJICAgIHNhX2Vx
dWFsKGFkZHIsIGlmYS0+aWZhX2RzdGFkZHIpKSB7CisJCQkJSUZfQUREUl9SVU5MT0NLKGlmcCk7
CisJCQkJcmV0dXJuIDE7CisJCQl9CiAJCX0KLQkJaWZhX2ZyZWUoZHN0YWRkcik7CisJCUlGX0FE
RFJfUlVOTE9DSyhpZnApOwogCX0KIAogCS8qCkBAIC0xNDg1LDcgKzE1MDEsNyBAQAogCQkJLyoK
IAkJCSAqIFdlIG5lZWQgdG8gdW5sb2NrIHRvIGF2b2lkIGEgTE9SIHdpdGggcnQ2X2ZsdXNoKCkg
d2l0aCB0aGUKIAkJCSAqIHJuaCBhbmQgZm9yIHRoZSBjYWxscyB0byBwZnhsaXN0X29ubGlua19j
aGVjaygpIGFuZAotCQkJICogZGVmcm91dGVyX3NlbGVjdCgpIGluIHRoZSBibG9jayBmdXJ0aGVy
IGRvd24gZm9yIGNhbGxzCisJCQkgKiBkZWZyb3V0ZXJfc2VsZWN0X2ZpYigpIGluIHRoZSBibG9j
ayBmdXJ0aGVyIGRvd24gZm9yIGNhbGxzCiAJCQkgKiBpbnRvIG5kNl9sb29rdXAoKS4gIFdlIHN0
aWxsIGhvbGQgYSByZWYuCiAJCQkgKi8KIAkJCUxMRV9XVU5MT0NLKGxuKTsKQEAgLTE1MDAsNyAr
MTUxNiw3IEBACiAKIAkJaWYgKGRyKSB7CiAJCQkvKgotCQkJICogU2luY2UgZGVmcm91dGVyX3Nl
bGVjdCgpIGRvZXMgbm90IGFmZmVjdCB0aGUKKwkJCSAqIFNpbmNlIGRlZnJvdXRlcl9zZWxlY3Rf
ZmliKCkgZG9lcyBub3QgYWZmZWN0IHRoZQogCQkJICogb24tbGluayBkZXRlcm1pbmF0aW9uIGFu
ZCBNSVA2IG5lZWRzIHRoZSBjaGVjawogCQkJICogYmVmb3JlIHRoZSBkZWZhdWx0IHJvdXRlciBz
ZWxlY3Rpb24sIHdlIHBlcmZvcm0KIAkJCSAqIHRoZSBjaGVjayBub3cuCkBAIC0xNTEwLDcgKzE1
MjYsNyBAQAogCQkJLyoKIAkJCSAqIFJlZnJlc2ggZGVmYXVsdCByb3V0ZXIgbGlzdC4KIAkJCSAq
LwotCQkJZGVmcm91dGVyX3NlbGVjdCgpOworCQkJZGVmcm91dGVyX3NlbGVjdF9maWIoZHItPmlm
cC0+aWZfZmliKTsKIAkJfQogCiAJCS8qCkBAIC0yMTA0LDIwICsyMTIwLDIwIEBACiAJICogUXVl
c3Rpb246IGNhbiB3ZSByZXN0cmljdCB0aGUgZmlyc3QgY29uZGl0aW9uIHRvIHRoZSAiaXNfbmV3
ZW50cnkiCiAJICogY2FzZT8KIAkgKiBYWFg6IHdoZW4gd2UgaGVhciBhbiBSQSBmcm9tIGEgbmV3
IHJvdXRlciB3aXRoIHRoZSBsaW5rLWxheWVyCi0JICogYWRkcmVzcyBvcHRpb24sIGRlZnJvdXRl
cl9zZWxlY3QoKSBpcyBjYWxsZWQgdHdpY2UsIHNpbmNlCisJICogYWRkcmVzcyBvcHRpb24sIGRl
ZnJvdXRlcl9zZWxlY3RfZmliKCkgaXMgY2FsbGVkIHR3aWNlLCBzaW5jZQogCSAqIGRlZnJ0cmxp
c3RfdXBkYXRlIGNhbGxlZCB0aGUgZnVuY3Rpb24gYXMgd2VsbC4gIEhvd2V2ZXIsIEkgYmVsaWV2
ZQogCSAqIHdlIGNhbiBjb21wcm9taXNlIHRoZSBvdmVyaGVhZCwgc2luY2UgaXQgb25seSBoYXBw
ZW5zIHRoZSBmaXJzdAogCSAqIHRpbWUuCi0JICogWFhYOiBhbHRob3VnaCBkZWZyb3V0ZXJfc2Vs
ZWN0KCkgc2hvdWxkIG5vdCBoYXZlIGEgYmFkIGVmZmVjdAorCSAqIFhYWDogYWx0aG91Z2ggZGVm
cm91dGVyX3NlbGVjdF9maWIoKSBzaG91bGQgbm90IGhhdmUgYSBiYWQgZWZmZWN0CiAJICogZm9y
IHRob3NlIGFyZSBub3QgYXV0b2NvbmZpZ3VyZWQgaG9zdHMsIHdlIGV4cGxpY2l0bHkgYXZvaWQg
c3VjaAogCSAqIGNhc2VzIGZvciBzYWZldHkuCiAJICovCiAJaWYgKChkb191cGRhdGUgfHwgaXNf
bmV3ZW50cnkpICYmIHJvdXRlciAmJgogCSAgICBORF9JRklORk8oaWZwKS0+ZmxhZ3MgJiBORDZf
SUZGX0FDQ0VQVF9SVEFEVikgewogCQkvKgogCQkgKiBndWFyYW50ZWVkIHJlY3Vyc2lvbgogCQkg
Ki8KLQkJZGVmcm91dGVyX3NlbGVjdCgpOworCQlkZWZyb3V0ZXJfc2VsZWN0X2ZpYihpZnAtPmlm
X2ZpYik7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zeXMvbmV0aW5ldDYvaW42X3NyYy5jIGIvc3lz
L25ldGluZXQ2L2luNl9zcmMuYwotLS0gYS9zeXMvbmV0aW5ldDYvaW42X3NyYy5jCisrKyBiL3N5
cy9uZXRpbmV0Ni9pbjZfc3JjLmMKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCSAqLwogCS8qIGdldCB0
aGUgb3V0Z29pbmcgaW50ZXJmYWNlICovCiAJaWYgKChlcnJvciA9IGluNl9zZWxlY3RpZihkc3Rz
b2NrLCBvcHRzLCBtb3B0cywgJmlmcCwgb2lmcCwKLQkgICAgKGlucCAhPSBOVUxMKSA/IGlucC0+
aW5wX2luYy5pbmNfZmlibnVtIDogUlRfREVGQVVMVF9GSUIpKSAhPSAwKQorCSAgICAoaW5wICE9
IE5VTEwpID8gaW5wLT5pbnBfaW5jLmluY19maWJudW0gOiBmaWJudW0pKSAhPSAwKQogCQlyZXR1
cm4gKGVycm9yKTsKIAogI2lmZGVmIERJQUdOT1NUSUMKQEAgLTU2Myw3ICs1NjMsNyBAQAogCXVp
bnQzMl90IGZpYm51bTsKIAlpbnQgZXJyb3I7CiAKLQlmaWJudW0gPSAoaW5wICE9IE5VTEwpID8g
aW5wLT5pbnBfaW5jLmluY19maWJudW0gOiBSVF9ERUZBVUxUX0ZJQjsKKwlmaWJudW0gPSBpbnAt
PmlucF9pbmMuaW5jX2ZpYm51bTsKIAlyZXRpZnAgPSBOVUxMOwogCiAJZXJyb3IgPSBpbjZfc2Vs
ZWN0c3JjKGZpYm51bSwgZHN0c29jaywgb3B0cywgaW5wLCBjcmVkLCAmcmV0aWZwLCBzcmNwKTsK
ZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0Ni9pbjYuYyBiL3N5cy9uZXRpbmV0Ni9pbjYuYwotLS0g
YS9zeXMvbmV0aW5ldDYvaW42LmMKKysrIGIvc3lzL25ldGluZXQ2L2luNi5jCkBAIC0xNTksNiAr
MTU5LDcgQEAKIAlzdHJ1Y3Qgc29ja2FkZHJfZGwgZ2F0ZXdheTsKIAlzdHJ1Y3Qgc29ja2FkZHJf
aW42IG1hc2ssIGFkZHI7CiAJc3RydWN0IHJ0ZW50cnkgcnQ7CisJaW50IGZpYm51bTsKIAogCS8q
CiAJICogaW5pdGlhbGl6ZSBmb3IgcnRtc2cgZ2VuZXJhdGlvbgpAQCAtMTc2LDggKzE3Nyw5IEBA
CiAJcnQucnRfZmxhZ3MgPSBSVEZfSE9TVCB8IFJURl9TVEFUSUM7CiAJaWYgKGNtZCA9PSBSVE1f
QUREKQogCQlydC5ydF9mbGFncyB8PSBSVEZfVVA7Ci0JLyogQW5ub3VuY2UgYXJyaXZhbCBvZiBs
b2NhbCBhZGRyZXNzIHRvIGFsbCBGSUJzLiAqLwotCXJ0X25ld2FkZHJtc2coY21kLCAmaWEtPmlh
X2lmYSwgMCwgJnJ0KTsKKwlmaWJudW0gPSBWX3J0X2FkZF9hZGRyX2FsbGZpYnMgPyBSVF9BTExf
RklCUyA6IGlhNjJpZmEoaWEpLT5pZmFfaWZwLT5pZl9maWI7CisJLyogQW5ub3VuY2UgYXJyaXZh
bCBvZiBsb2NhbCBhZGRyZXNzIHRvIHRoaXMgRklCLiAqLworCXJ0X25ld2FkZHJtc2dfZmliKGNt
ZCwgJmlhLT5pYV9pZmEsIDAsICZydCwgZmlibnVtKTsKIH0KIAogaW50CkBAIC0yMTE3LDE1ICsy
MTE5LDE1IEBACiAJdWludDMyX3Qgc2NvcGVpZDsKIAlpbnQgZXJyb3I7CiAJY2hhciBpcDZidWZb
SU5FVDZfQUREUlNUUkxFTl07CisJaW50IGZpYm51bTsKIAogCUtBU1NFUlQobDNhZGRyLT5zYV9m
YW1pbHkgPT0gQUZfSU5FVDYsCiAJICAgICgic2luX2ZhbWlseSAlZCIsIGwzYWRkci0+c2FfZmFt
aWx5KSk7CiAKLQkvKiBPdXIgbG9jYWwgYWRkcmVzc2VzIGFyZSBhbHdheXMgb25seSBpbnN0YWxs
ZWQgb24gdGhlIGRlZmF1bHQgRklCLiAqLwotCiAJc2luNiA9IChjb25zdCBzdHJ1Y3Qgc29ja2Fk
ZHJfaW42ICopbDNhZGRyOwogCWluNl9zcGxpdHNjb3BlKCZzaW42LT5zaW42X2FkZHIsICZkc3Qs
ICZzY29wZWlkKTsKLQllcnJvciA9IGZpYjZfbG9va3VwX25oX2Jhc2ljKFJUX0RFRkFVTFRfRklC
LCAmZHN0LCBzY29wZWlkLCAwLCAwLCAmbmg2KTsKKwlmaWJudW0gPSBWX3J0X2FkZF9hZGRyX2Fs
bGZpYnMgPyBSVF9ERUZBVUxUX0ZJQiA6IGlmcC0+aWZfZmliOworCWVycm9yID0gZmliNl9sb29r
dXBfbmhfYmFzaWMoZmlibnVtLCAmZHN0LCBzY29wZWlkLCAwLCAwLCAmbmg2KTsKIAlpZiAoZXJy
b3IgIT0gMCB8fCAobmg2Lm5oX2ZsYWdzICYgTkhGX0dBVEVXQVkpIHx8IG5oNi5uaF9pZnAgIT0g
aWZwKSB7CiAJCXN0cnVjdCBpZmFkZHIgKmlmYTsKIAkJLyoKZGlmZiAtLWdpdCBhL3N5cy9uZXRp
bmV0Ni9pY21wNi5jIGIvc3lzL25ldGluZXQ2L2ljbXA2LmMKLS0tIGEvc3lzL25ldGluZXQ2L2lj
bXA2LmMKKysrIGIvc3lzL25ldGluZXQ2L2ljbXA2LmMKQEAgLTIxNDcsNyArMjE0Nyw3IEBACiAJ
CSAqIHNvdXJjZSBhZGRyZXNzIG9mIHRoZSBlcnJvbmVvdXMgcGFja2V0LgogCQkgKi8KIAkJaW42
X3NwbGl0c2NvcGUoJmlwNi0+aXA2X3NyYywgJmRzdDYsICZzY29wZWlkKTsKLQkJZXJyb3IgPSBp
bjZfc2VsZWN0c3JjX2FkZHIoUlRfREVGQVVMVF9GSUIsICZkc3Q2LAorCQllcnJvciA9IGluNl9z
ZWxlY3RzcmNfYWRkcihNX0dFVEZJQihtKSwgJmRzdDYsCiAJCSAgICBzY29wZWlkLCBOVUxMLCAm
c3JjNiwgJmhsaW0pOwogCiAJCWlmIChlcnJvcikgewpAQCAtMjI4OSw3ICsyMjg5LDcgQEAKIAl1
aW50MzJfdCBzY29wZWlkOwogCiAJaW42X3NwbGl0c2NvcGUoJnJlZGRzdDYsICZrZHN0LCAmc2Nv
cGVpZCk7Ci0JaWYgKGZpYjZfbG9va3VwX25oX2Jhc2ljKFJUX0RFRkFVTFRfRklCLCAma2RzdCwg
c2NvcGVpZCwgMCwgMCwmbmg2KT09MCl7CisJaWYgKGZpYjZfbG9va3VwX25oX2Jhc2ljKGlmcC0+
aWZfZmliLCAma2RzdCwgc2NvcGVpZCwgMCwgMCwmbmg2KT09MCl7CiAJCWlmICgobmg2Lm5oX2Zs
YWdzICYgTkhGX0dBVEVXQVkpID09IDApIHsKIAkJCW5kNmxvZygoTE9HX0VSUiwKIAkJCSAgICAi
SUNNUDYgcmVkaXJlY3QgcmVqZWN0ZWQ7IG5vIHJvdXRlICIKCg==


--b1_b0d313e58e33da16a81af0fc9092492c--



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