Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Mar 2017 05:10:40 +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:  <af28b28da6507256460ae036304910f5@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_af28b28da6507256460ae036304910f5
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

amh1amhpdGlfYWRqZWN0aXZpc20ub3JnIHVwZGF0ZWQgdGhpcyByZXZpc2lvbiB0byBEaWZmIDI2
MDIyLgpqaHVqaGl0aV9hZGplY3RpdmlzbS5vcmcgbWFya2VkIGFuIGlubGluZSBjb21tZW50IGFz
IGRvbmUuCgpSRVBPU0lUT1JZCiAgclMgRnJlZUJTRCBzcmMgcmVwb3NpdG9yeQoKQ0hBTkdFUyBT
SU5DRSBMQVNUIFVQREFURQogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EOTQ1MT92cz0y
NTUxMiZpZD0yNjAyMgoKUkVWSVNJT04gREVUQUlMCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qu
b3JnL0Q5NDUxCgpBRkZFQ1RFRCBGSUxFUwogIHN5cy9uZXRpbmV0Ni9pY21wNi5jCiAgc3lzL25l
dGluZXQ2L2luNi5jCiAgc3lzL25ldGluZXQ2L2luNl9zcmMuYwogIHN5cy9uZXRpbmV0Ni9uZDYu
YwogIHN5cy9uZXRpbmV0Ni9uZDYuaAogIHN5cy9uZXRpbmV0Ni9uZDZfbmJyLmMKICBzeXMvbmV0
aW5ldDYvbmQ2X3J0ci5jCiAgdGVzdHMvc3lzL25ldGluZXQvZmlic190ZXN0LnNoCgpFTUFJTCBQ
UkVGRVJFTkNFUwogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9zZXR0aW5ncy9wYW5lbC9l
bWFpbHByZWZlcmVuY2VzLwoKVG86IGpodWpoaXRpX2FkamVjdGl2aXNtLm9yZywgI25ldHdvcmss
IGJ6LCBhc29tZXJzCkNjOiBqY2gsIGJ6LCBpbXAsIGFlLCBmcmVlYnNkLW5ldC1saXN0Cg==

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

ZGlmZiAtLWdpdCBhL3Rlc3RzL3N5cy9uZXRpbmV0L2ZpYnNfdGVzdC5zaCBiL3Rlc3RzL3N5cy9u
ZXRpbmV0L2ZpYnNfdGVzdC5zaAotLS0gYS90ZXN0cy9zeXMvbmV0aW5ldC9maWJzX3Rlc3Quc2gK
KysrIGIvdGVzdHMvc3lzL25ldGluZXQvZmlic190ZXN0LnNoCkBAIC00NTksOCArNDU5LDYgQEAK
IAlTVUJORVQ9IjIwMDE6ZGI4OiIKIAlNQVNLPSI2NCIKIAotCWF0Zl9leHBlY3RfZmFpbCAiUFIx
OTYzNjEgSVB2NiBuZXR3b3JrIHJvdXRlcyBkb24ndCByZXNwZWN0IG5ldC5hZGRfYWRkcl9hbGxm
aWJzPTAiCi0KIAkjIENoZWNrIHN5c3RlbSBjb25maWd1cmF0aW9uCiAJaWYgWyAwICE9IGBzeXNj
dGwgLW4gbmV0LmFkZF9hZGRyX2FsbGZpYnNgIF07IHRoZW4KIAkJYXRmX3NraXAgIlRoaXMgdGVz
dCByZXF1aXJlcyBuZXQuYWRkX2FkZHJfYWxsZmlicz0wIgpkaWZmIC0tZ2l0IGEvc3lzL25ldGlu
ZXQ2L25kNl9ydHIuYyBiL3N5cy9uZXRpbmV0Ni9uZDZfcnRyLmMKLS0tIGEvc3lzL25ldGluZXQ2
L25kNl9ydHIuYworKysgYi9zeXMvbmV0aW5ldDYvbmQ2X3J0ci5jCkBAIC01MDAsNyArNTAwLDcg
QEAKIAogCWVycm9yID0gaW42X3J0cmVxdWVzdChSVE1fQURELCAoc3RydWN0IHNvY2thZGRyICop
JmRlZiwKIAkgICAgKHN0cnVjdCBzb2NrYWRkciAqKSZnYXRlLCAoc3RydWN0IHNvY2thZGRyICop
Jm1hc2ssCi0JICAgIFJURl9HQVRFV0FZLCAmbmV3cnQsIFJUX0RFRkFVTFRfRklCKTsKKwkgICAg
UlRGX0dBVEVXQVksICZuZXdydCwgbmV3LT5pZnAtPmlmX2ZpYik7CiAJaWYgKG5ld3J0KSB7CiAJ
CW5kNl9ydG1zZyhSVE1fQURELCBuZXdydCk7IC8qIHRlbGwgdXNlciBwcm9jZXNzICovCiAJCVJU
RlJFRShuZXdydCk7CkBAIC01NTEsOCArNTUxLDggQEAKIAogLyoKICAqIFJlbW92ZSB0aGUgZGVm
YXVsdCByb3V0ZSBmb3IgYSBnaXZlbiByb3V0ZXIuCi0gKiBUaGlzIGlzIGp1c3QgYSBzdWJyb3V0
aW5lIGZ1bmN0aW9uIGZvciBkZWZyb3V0ZXJfc2VsZWN0KCksIGFuZCBzaG91bGQKLSAqIG5vdCBi
ZSBjYWxsZWQgZnJvbSBhbnl3aGVyZSBlbHNlLgorICogVGhpcyBpcyBqdXN0IGEgc3Vicm91dGlu
ZSBmdW5jdGlvbiBmb3IgZGVmcm91dGVyX3NlbGVjdF9maWIoKSwgYW5kCisgKiBzaG91bGQgbm90
IGJlIGNhbGxlZCBmcm9tIGFueXdoZXJlIGVsc2UuCiAgKi8KIHN0YXRpYyB2b2lkCiBkZWZyb3V0
ZXJfZGVscmVxKHN0cnVjdCBuZF9kZWZyb3V0ZXIgKmRyKQpAQCAtNTcxLDcgKzU3MSw3IEBACiAK
IAlpbjZfcnRyZXF1ZXN0KFJUTV9ERUxFVEUsIChzdHJ1Y3Qgc29ja2FkZHIgKikmZGVmLAogCSAg
ICAoc3RydWN0IHNvY2thZGRyICopJmdhdGUsCi0JICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikmbWFz
aywgUlRGX0dBVEVXQVksICZvbGRydCwgUlRfREVGQVVMVF9GSUIpOworCSAgICAoc3RydWN0IHNv
Y2thZGRyICopJm1hc2ssIFJURl9HQVRFV0FZLCAmb2xkcnQsIGRyLT5pZnAtPmlmX2ZpYik7CiAJ
aWYgKG9sZHJ0KSB7CiAJCW5kNl9ydG1zZyhSVE1fREVMRVRFLCBvbGRydCk7CiAJCVJURlJFRShv
bGRydCk7CkBAIC02OTgsMTEgKzY5OCwxMSBAQAogCiAJLyoKIAkgKiBJZiB0aGUgcm91dGVyIGlz
IHRoZSBwcmltYXJ5IG9uZSwgY2hvb3NlIGEgbmV3IG9uZS4KLQkgKiBOb3RlIHRoYXQgZGVmcm91
dGVyX3NlbGVjdCgpIHdpbGwgcmVtb3ZlIHRoZSBjdXJyZW50IGdhdGV3YXkKLQkgKiBmcm9tIHRo
ZSByb3V0aW5nIHRhYmxlLgorCSAqIE5vdGUgdGhhdCBkZWZyb3V0ZXJfc2VsZWN0X2ZpYigpIHdp
bGwgcmVtb3ZlIHRoZSBjdXJyZW50CisgICAgICAgICAqIGdhdGV3YXkgZnJvbSB0aGUgcm91dGlu
ZyB0YWJsZS4KIAkgKi8KIAlpZiAoZGVsZHIpCi0JCWRlZnJvdXRlcl9zZWxlY3QoKTsKKwkJZGVm
cm91dGVyX3NlbGVjdF9maWIoZGVsZHItPmlmcC0+aWZfZmliKTsKIAogCS8qCiAJICogUmVsZWFz
ZSB0aGUgbGlzdCByZWZlcmVuY2UuCkBAIC03MzAsMTMgKzczMCwyMyBAQAogICogZXZlbiB3aGVu
IHRoZSBtdWx0aXBhdGggcm91dGluZyBpcyBhdmFpbGFibGUsIGJlY2F1c2Ugd2UncmUgbm90IHN1
cmUgYWJvdXQKICAqIHRoZSBiZW5lZml0cyBmb3Igc3R1YiBob3N0cyBjb21wYXJpbmcgdG8gdGhl
IHJpc2sgb2YgbWFraW5nIHRoZSBjb2RlCiAgKiBjb21wbGljYXRlZCBhbmQgdGhlIHBvc3NpYmls
aXR5IG9mIGludHJvZHVjaW5nIGJ1Z3MuCisgKgorICogV2UgbWFpbnRhaW4gYSBzaW5nbGUgbGlz
dCBvZiByb3V0ZXJzIGZvciBtdWx0aXBsZSBGSUJzLCBvbmx5IGNvbnNpZGVyaW5nIG9uZQorICog
YXQgYSB0aW1lIGJhc2VkIG9uIHRoZSByZWNlaXZpbmcgaW50ZXJmYWNlJ3MgRklCLiBJZiBAZmli
bnVtIGlzIFJUX0FMTF9GSUJTLAorICogd2UgZG8gdGhlIHdob2xlIHRoaW5nIG11bHRpcGxlIHRp
bWVzLgogICovCiB2b2lkCi1kZWZyb3V0ZXJfc2VsZWN0KHZvaWQpCitkZWZyb3V0ZXJfc2VsZWN0
X2ZpYihpbnQgZmlibnVtKQogewogCXN0cnVjdCBuZF9kZWZyb3V0ZXIgKmRyLCAqc2VsZWN0ZWRf
ZHIsICppbnN0YWxsZWRfZHI7CiAJc3RydWN0IGxsZW50cnkgKmxuID0gTlVMTDsKIAorCWlmIChm
aWJudW0gPT0gUlRfQUxMX0ZJQlMpIHsKKwkJZm9yIChmaWJudW0gPSAwOyBmaWJudW0gPCBydF9u
dW1maWJzOyBmaWJudW0rKykgeworCQkJZGVmcm91dGVyX3NlbGVjdF9maWIoZmlibnVtKTsKKwkJ
fQorCX0KKwogCU5ENl9STE9DSygpOwogCS8qCiAJICogTGV0J3MgaGFuZGxlIGVhc3kgY2FzZSAo
MykgZmlyc3Q6CkBAIC03NTUsNyArNzY1LDcgQEAKIAlzZWxlY3RlZF9kciA9IGluc3RhbGxlZF9k
ciA9IE5VTEw7CiAJVEFJTFFfRk9SRUFDSChkciwgJlZfbmRfZGVmcm91dGVyLCBkcl9lbnRyeSkg
ewogCQlJRl9BRkRBVEFfUkxPQ0soZHItPmlmcCk7Ci0JCWlmIChzZWxlY3RlZF9kciA9PSBOVUxM
ICYmCisJCWlmIChzZWxlY3RlZF9kciA9PSBOVUxMICYmIGRyLT5pZnAtPmlmX2ZpYiA9PSBmaWJu
dW0gJiYKIAkJICAgIChsbiA9IG5kNl9sb29rdXAoJmRyLT5ydGFkZHIsIDAsIGRyLT5pZnApKSAm
JgogCQkgICAgTkQ2X0lTX0xMSU5GT19QUk9CUkVBQ0gobG4pKSB7CiAJCQlzZWxlY3RlZF9kciA9
IGRyOwpAQCAtNzY3LDE0ICs3NzcsMTcgQEAKIAkJCWxuID0gTlVMTDsKIAkJfQogCi0JCWlmIChk
ci0+aW5zdGFsbGVkKSB7CisJCWlmIChkci0+aW5zdGFsbGVkICYmIGRyLT5pZnAtPmlmX2ZpYiA9
PSBmaWJudW0pIHsKIAkJCWlmIChpbnN0YWxsZWRfZHIgPT0gTlVMTCkgewogCQkJCWluc3RhbGxl
ZF9kciA9IGRyOwogCQkJCWRlZnJvdXRlcl9yZWYoaW5zdGFsbGVkX2RyKTsKIAkJCX0gZWxzZSB7
Ci0JCQkJLyogdGhpcyBzaG91bGQgbm90IGhhcHBlbi4gIHdhcm4gZm9yIGRpYWdub3Npcy4gKi8K
LQkJCQlsb2coTE9HX0VSUiwKLQkJICAgICJkZWZyb3V0ZXJfc2VsZWN0OiBtb3JlIHRoYW4gb25l
IHJvdXRlciBpcyBpbnN0YWxsZWRcbiIpOworCQkJCS8qCisJCQkJICogdGhpcyBzaG91bGQgbm90
IGhhcHBlbi4KKwkJCQkgKiB3YXJuIGZvciBkaWFnbm9zaXMuCisJCQkJICovCisJCQkJbG9nKExP
R19FUlIsICJkZWZyb3V0ZXJfc2VsZWN0X2ZpYjogbW9yZSB0aGFuICIKKwkJCQkgICAgICAgICAg
ICAgIm9uZSByb3V0ZXIgaXMgaW5zdGFsbGVkXG4iKTsKIAkJCX0KIAkJfQogCX0KQEAgLTc4OSwx
NCArODAyLDI0IEBACiAJaWYgKHNlbGVjdGVkX2RyID09IE5VTEwpIHsKIAkJaWYgKGluc3RhbGxl
ZF9kciA9PSBOVUxMIHx8CiAJCSAgICBUQUlMUV9ORVhUKGluc3RhbGxlZF9kciwgZHJfZW50cnkp
ID09IE5VTEwpCi0JCQlzZWxlY3RlZF9kciA9IFRBSUxRX0ZJUlNUKCZWX25kX2RlZnJvdXRlcik7
CisJCQlkciA9IFRBSUxRX0ZJUlNUKCZWX25kX2RlZnJvdXRlcik7CiAJCWVsc2UKLQkJCXNlbGVj
dGVkX2RyID0gVEFJTFFfTkVYVChpbnN0YWxsZWRfZHIsIGRyX2VudHJ5KTsKLQkJZGVmcm91dGVy
X3JlZihzZWxlY3RlZF9kcik7CisJCQlkciA9IFRBSUxRX05FWFQoaW5zdGFsbGVkX2RyLCBkcl9l
bnRyeSk7CisKKwkJLyogRW5zdXJlIHdlIHNlbGVjdCBhIHJvdXRlciBmb3IgdGhpcyBGSUIuICov
CisJCVRBSUxRX0ZPUkVBQ0hfRlJPTShkciwgJlZfbmRfZGVmcm91dGVyLCBkcl9lbnRyeSkgewor
CQkJaWYgKGRyLT5pZnAtPmlmX2ZpYiA9PSBmaWJudW0pIHsKKwkJCQlzZWxlY3RlZF9kciA9IGRy
OworCQkJCWRlZnJvdXRlcl9yZWYoc2VsZWN0ZWRfZHIpOworCQkJCWJyZWFrOworCQkJfQorCQl9
CiAJfSBlbHNlIGlmIChpbnN0YWxsZWRfZHIgIT0gTlVMTCkgewogCQlJRl9BRkRBVEFfUkxPQ0so
aW5zdGFsbGVkX2RyLT5pZnApOwotCQlpZiAoKGxuID0gbmQ2X2xvb2t1cCgmaW5zdGFsbGVkX2Ry
LT5ydGFkZHIsIDAsIGluc3RhbGxlZF9kci0+aWZwKSkgJiYKKwkJaWYgKChsbiA9IG5kNl9sb29r
dXAoJmluc3RhbGxlZF9kci0+cnRhZGRyLCAwLAorCQkgICAgICAgICAgICAgICAgICAgICBpbnN0
YWxsZWRfZHItPmlmcCkpICYmCiAJCSAgICBORDZfSVNfTExJTkZPX1BST0JSRUFDSChsbikgJiYK
KwkJICAgIGluc3RhbGxlZF9kci0+aWZwLT5pZl9maWIgPT0gZmlibnVtICYmCiAJCSAgICBydHBy
ZWYoc2VsZWN0ZWRfZHIpIDw9IHJ0cHJlZihpbnN0YWxsZWRfZHIpKSB7CiAJCQlkZWZyb3V0ZXJf
cmVsZShzZWxlY3RlZF9kcik7CiAJCQlzZWxlY3RlZF9kciA9IGluc3RhbGxlZF9kcjsKQEAgLTgw
OCwxOCArODMxLDMwIEBACiAJTkQ2X1JVTkxPQ0soKTsKIAogCS8qCi0JICogSWYgdGhlIHNlbGVj
dGVkIHJvdXRlciBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgaW5zdGFsbGVkIG9uZSwKLQkgKiByZW1v
dmUgdGhlIGluc3RhbGxlZCByb3V0ZXIgYW5kIGluc3RhbGwgdGhlIHNlbGVjdGVkIG9uZS4KLQkg
KiBOb3RlIHRoYXQgdGhlIHNlbGVjdGVkIHJvdXRlciBpcyBuZXZlciBOVUxMIGhlcmUuCisJICog
SWYgd2Ugc2VsZWN0ZWQgYSByb3V0ZXIgZm9yIHRoaXMgRklCIGFuZCBpdCdzIGRpZmZlcmVudAor
CSAqIHRoYW4gdGhlIGluc3RhbGxlZCBvbmUsIHJlbW92ZSB0aGUgaW5zdGFsbGVkIHJvdXRlciBh
bmQKKwkgKiBpbnN0YWxsIHRoZSBzZWxlY3RlZCBvbmUgaW4gaXRzIHBsYWNlLgogCSAqLwogCWlm
IChpbnN0YWxsZWRfZHIgIT0gc2VsZWN0ZWRfZHIpIHsKIAkJaWYgKGluc3RhbGxlZF9kciAhPSBO
VUxMKSB7CiAJCQlkZWZyb3V0ZXJfZGVscmVxKGluc3RhbGxlZF9kcik7CiAJCQlkZWZyb3V0ZXJf
cmVsZShpbnN0YWxsZWRfZHIpOwogCQl9Ci0JCWRlZnJvdXRlcl9hZGRyZXEoc2VsZWN0ZWRfZHIp
OworCQlpZiAoc2VsZWN0ZWRfZHIgIT0gTlVMTCkKKwkJCWRlZnJvdXRlcl9hZGRyZXEoc2VsZWN0
ZWRfZHIpOwogCX0KLQlkZWZyb3V0ZXJfcmVsZShzZWxlY3RlZF9kcik7CisJaWYgKHNlbGVjdGVk
X2RyICE9IE5VTEwpCisJCWRlZnJvdXRlcl9yZWxlKHNlbGVjdGVkX2RyKTsKK30KKworLyoKKyAq
IE1haW50YWluIG9sZCBLUEkgZm9yIGRlZmF1bHQgcm91dGVyIHNlbGVjdGlvbi4KKyAqIElmIHVu
c3BlY2lmaWVkLCB3ZSBjYW4gcmUtc2VsZWN0IHJvdXRlcnMgZm9yIGFsbCBGSUJzLgorICovCit2
b2lkCitkZWZyb3V0ZXJfc2VsZWN0KHZvaWQpCit7CisJZGVmcm91dGVyX3NlbGVjdF9maWIoUlRf
QUxMX0ZJQlMpOwogfQogCiAvKgpAQCAtOTQyLDcgKzk3Nyw3IEBACiAJVl9uZDZfbGlzdF9nZW5p
ZCsrOwogCU5ENl9XVU5MT0NLKCk7CiAKLQlkZWZyb3V0ZXJfc2VsZWN0KCk7CisJZGVmcm91dGVy
X3NlbGVjdF9maWIobmV3LT5pZnAtPmlmX2ZpYik7CiAKIAlyZXR1cm4gKG4pOwogfQpAQCAtMTcz
MSw3ICsxNzY2LDcgQEAKIAlzdHJ1Y3QgcnRlbnRyeSAqcnQ7CiAJc3RydWN0IHNvY2thZGRyX2lu
NiBtYXNrNjsKIAl1X2xvbmcgcnRmbGFnczsKLQlpbnQgZXJyb3IsIGFfZmFpbHVyZSwgZmlibnVt
OworCWludCBlcnJvciwgYV9mYWlsdXJlLCBmaWJudW0sIG1heGZpYjsKIAogCS8qCiAJICogaW42
X2lmaW5pdCgpIHNldHMgbmQ2X3J0cmVxdWVzdCB0byBpZmFfcnRyZXF1ZXN0IGZvciBhbGwgaWZh
ZGRycy4KQEAgLTE3NDIsOCArMTc3NywxNSBAQAogCW1hc2s2LnNpbjZfYWRkciA9IHByLT5uZHBy
X21hc2s7CiAJcnRmbGFncyA9IChpZmEtPmlmYV9mbGFncyAmIH5JRkFfUlRTRUxGKSB8IFJURl9V
UDsKIAorCWlmKFZfcnRfYWRkX2FkZHJfYWxsZmlicykgeworCQlmaWJudW0gPSAwOworCQltYXhm
aWIgPSBydF9udW1maWJzOworCX0gZWxzZSB7CisJCWZpYm51bSA9IGlmYS0+aWZhX2lmcC0+aWZf
ZmliOworCQltYXhmaWIgPSBmaWJudW0gKyAxOworCX0KIAlhX2ZhaWx1cmUgPSAwOwotCWZvciAo
ZmlibnVtID0gMDsgZmlibnVtIDwgcnRfbnVtZmliczsgZmlibnVtKyspIHsKKwlmb3IgKDsgZmli
bnVtIDwgbWF4ZmliOyBmaWJudW0rKykgewogCiAJCXJ0ID0gTlVMTDsKIAkJZXJyb3IgPSBpbjZf
cnRyZXF1ZXN0KFJUTV9BREQsCkBAIC0xODMxLDYgKzE4NzMsMTAgQEAKIAkJaWYgKChvcHItPm5k
cHJfc3RhdGVmbGFncyAmIE5EUFJGX09OTElOSykgPT0gMCkKIAkJCWNvbnRpbnVlOwogCisJCWlm
ICghVl9ydF9hZGRfYWRkcl9hbGxmaWJzICYmCisJCSAgICBvcHItPm5kcHJfaWZwLT5pZl9maWIg
IT0gcHItPm5kcHJfaWZwLT5pZl9maWIpCisJCQljb250aW51ZTsKKwogCQlpZiAob3ByLT5uZHBy
X3BsZW4gPT0gcHItPm5kcHJfcGxlbiAmJgogCQkgICAgaW42X2FyZV9wcmVmaXhfZXF1YWwoJnBy
LT5uZHByX3ByZWZpeC5zaW42X2FkZHIsCiAJCSAgICAmb3ByLT5uZHByX3ByZWZpeC5zaW42X2Fk
ZHIsIHByLT5uZHByX3BsZW4pKSB7CkBAIC0xODkxLDcgKzE5MzcsNyBAQAogCXN0cnVjdCBydGVu
dHJ5ICpydDsKIAljaGFyIGlwNmJ1ZltJTkVUNl9BRERSU1RSTEVOXTsKIAl1aW50NjRfdCBnZW5p
ZDsKLQlpbnQgZmlibnVtLCBhX2ZhaWx1cmU7CisJaW50IGZpYm51bSwgbWF4ZmliLCBhX2ZhaWx1
cmU7CiAKIAlORDZfT05MSU5LX0xPQ0tfQVNTRVJUKCk7CiAJTkQ2X1VOTE9DS19BU1NFUlQoKTsK
QEAgLTE5MDksOCArMTk1NSwxNiBAQAogCW1hc2s2LnNpbjZfbGVuID0gc2l6ZW9mKHNhNik7CiAJ
YmNvcHkoJnByLT5uZHByX21hc2ssICZtYXNrNi5zaW42X2FkZHIsIHNpemVvZihzdHJ1Y3QgaW42
X2FkZHIpKTsKIAorCWlmIChWX3J0X2FkZF9hZGRyX2FsbGZpYnMpIHsKKwkJZmlibnVtID0gMDsK
KwkJbWF4ZmliID0gcnRfbnVtZmliczsKKwl9IGVsc2UgeworCQlmaWJudW0gPSBpZnAtPmlmX2Zp
YjsKKwkJbWF4ZmliID0gZmlibnVtICsgMTsKKwl9CisKIAlhX2ZhaWx1cmUgPSAwOwotCWZvciAo
ZmlibnVtID0gMDsgZmlibnVtIDwgcnRfbnVtZmliczsgZmlibnVtKyspIHsKKwlmb3IgKDsgZmli
bnVtIDwgbWF4ZmliOyBmaWJudW0rKykgewogCQlydCA9IE5VTEw7CiAJCWVycm9yID0gaW42X3J0
cmVxdWVzdChSVE1fREVMRVRFLCAoc3RydWN0IHNvY2thZGRyICopJnNhNiwgTlVMTCwKIAkJICAg
IChzdHJ1Y3Qgc29ja2FkZHIgKikmbWFzazYsIDAsICZydCwgZmlibnVtKTsKZGlmZiAtLWdpdCBh
L3N5cy9uZXRpbmV0Ni9uZDZfbmJyLmMgYi9zeXMvbmV0aW5ldDYvbmQ2X25ici5jCi0tLSBhL3N5
cy9uZXRpbmV0Ni9uZDZfbmJyLmMKKysrIGIvc3lzL25ldGluZXQ2L25kNl9uYnIuYwpAQCAtMjYy
LDggKzI2Miw3IEBACiAJCWJ6ZXJvKCZpbmZvLCBzaXplb2YoaW5mbykpOwogCQlpbmZvLnJ0aV9p
bmZvW1JUQVhfR0FURVdBWV0gPSAoc3RydWN0IHNvY2thZGRyICopJnJ0X2dhdGV3YXk7CiAKLQkJ
LyogQWx3YXlzIHVzZSB0aGUgZGVmYXVsdCBGSUIuICovCi0JCWlmIChyaWJfbG9va3VwX2luZm8o
UlRfREVGQVVMVF9GSUIsIChzdHJ1Y3Qgc29ja2FkZHIgKikmZHN0NiwKKwkJaWYgKHJpYl9sb29r
dXBfaW5mbyhpZnAtPmlmX2ZpYiwgKHN0cnVjdCBzb2NrYWRkciAqKSZkc3Q2LAogCQkgICAgMCwg
MCwgJmluZm8pID09IDApIHsKIAkJCWlmICgoaW5mby5ydGlfZmxhZ3MgJiBSVEZfQU5OT1VOQ0Up
ICE9IDAgJiYKIAkJCSAgICBydF9nYXRld2F5LnNkbF9mYW1pbHkgPT0gQUZfTElOSykgewpAQCAt
NDg1LDcgKzQ4NCw3IEBACiAJCQl1aW50MzJfdCBzY29wZWlkOwogCiAJCQlpbjZfc3BsaXRzY29w
ZSgmaXA2LT5pcDZfZHN0LCAmZHN0NiwgJnNjb3BlaWQpOwotCQkJZXJyb3IgPSBpbjZfc2VsZWN0
c3JjX2FkZHIoUlRfREVGQVVMVF9GSUIsICZkc3Q2LAorCQkJZXJyb3IgPSBpbjZfc2VsZWN0c3Jj
X2FkZHIoZmlibnVtLCAmZHN0NiwKIAkJCSAgICBzY29wZWlkLCBpZnAsICZzcmM2LCBOVUxMKTsK
IAkJCWlmIChlcnJvcikgewogCQkJCWNoYXIgaXA2YnVmW0lORVQ2X0FERFJTVFJMRU5dOwpAQCAt
OTgyLDcgKzk4MSw3IEBACiAJICogU2VsZWN0IGEgc291cmNlIHdob3NlIHNjb3BlIGlzIHRoZSBz
YW1lIGFzIHRoYXQgb2YgdGhlIGRlc3QuCiAJICovCiAJaW42X3NwbGl0c2NvcGUoJmRhZGRyNiwg
JmRzdDYsICZzY29wZWlkKTsKLQllcnJvciA9IGluNl9zZWxlY3RzcmNfYWRkcihSVF9ERUZBVUxU
X0ZJQiwgJmRzdDYsCisJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoZmlibnVtLCAmZHN0NiwK
IAkgICAgc2NvcGVpZCwgaWZwLCAmc3JjNiwgTlVMTCk7CiAJaWYgKGVycm9yKSB7CiAJCWNoYXIg
aXA2YnVmW0lORVQ2X0FERFJTVFJMRU5dOwpkaWZmIC0tZ2l0IGEvc3lzL25ldGluZXQ2L25kNi5o
IGIvc3lzL25ldGluZXQ2L25kNi5oCi0tLSBhL3N5cy9uZXRpbmV0Ni9uZDYuaAorKysgYi9zeXMv
bmV0aW5ldDYvbmQ2LmgKQEAgLTQ2OSw2ICs0NjksNyBAQAogdm9pZCBuZDZfcnNfaW5wdXQoc3Ry
dWN0IG1idWYgKiwgaW50LCBpbnQpOwogdm9pZCBuZDZfcmFfaW5wdXQoc3RydWN0IG1idWYgKiwg
aW50LCBpbnQpOwogdm9pZCBkZWZyb3V0ZXJfcmVzZXQodm9pZCk7Cit2b2lkIGRlZnJvdXRlcl9z
ZWxlY3RfZmliKGludCBmaWJudW0pOwogdm9pZCBkZWZyb3V0ZXJfc2VsZWN0KHZvaWQpOwogdm9p
ZCBkZWZyb3V0ZXJfcmVmKHN0cnVjdCBuZF9kZWZyb3V0ZXIgKik7CiB2b2lkIGRlZnJvdXRlcl9y
ZWxlKHN0cnVjdCBuZF9kZWZyb3V0ZXIgKik7CmRpZmYgLS1naXQgYS9zeXMvbmV0aW5ldDYvbmQ2
LmMgYi9zeXMvbmV0aW5ldDYvbmQ2LmMKLS0tIGEvc3lzL25ldGluZXQ2L25kNi5jCisrKyBiL3N5
cy9uZXRpbmV0Ni9uZDYuYwpAQCAtMTU3LDYgKzE1Nyw3IEBACiAJc3RydWN0IHNvY2thZGRyX2Rs
IGd3OwogCXN0cnVjdCBpZm5ldCAqaWZwOwogCWludCB0eXBlOworCWludCBmaWJudW07CiAKIAlM
TEVfV0xPQ0tfQVNTRVJUKGxsZSk7CiAKQEAgLTE5NCw4ICsxOTUsOSBAQAogCXJ0aW5mby5ydGlf
aW5mb1tSVEFYX0RTVF0gPSAoc3RydWN0IHNvY2thZGRyICopJmRzdDsKIAlydGluZm8ucnRpX2lu
Zm9bUlRBWF9HQVRFV0FZXSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikmZ3c7CiAJcnRpbmZvLnJ0aV9h
ZGRycyA9IFJUQV9EU1QgfCBSVEFfR0FURVdBWTsKKwlmaWJudW0gPSBWX3J0X2FkZF9hZGRyX2Fs
bGZpYnMgPyBSVF9BTExfRklCUyA6IGlmcC0+aWZfZmliOwogCXJ0X21pc3Ntc2dfZmliKHR5cGUs
ICZydGluZm8sIFJURl9IT1NUIHwgUlRGX0xMREFUQSB8ICgKLQkgICAgdHlwZSA9PSBSVE1fQURE
ID8gUlRGX1VQOiAwKSwgMCwgUlRfREVGQVVMVF9GSUIpOworCSAgICB0eXBlID09IFJUTV9BREQg
PyBSVEZfVVA6IDApLCAwLCBmaWJudW0pOwogfQogCiAvKgpAQCAtMTIwMCw3ICsxMjAyLDcgQEAK
IAogCWlmIChORF9JRklORk8oaWZwKS0+ZmxhZ3MgJiBORDZfSUZGX0FDQ0VQVF9SVEFEVikgewog
CQkvKiBSZWZyZXNoIGRlZmF1bHQgcm91dGVyIGxpc3QuICovCi0JCWRlZnJvdXRlcl9zZWxlY3Qo
KTsKKwkJZGVmcm91dGVyX3NlbGVjdF9maWIoaWZwLT5pZl9maWIpOwogCX0KIH0KIApAQCAtMTI1
Myw3ICsxMjU1LDcgQEAKIG5kNl9pc19uZXdfYWRkcl9uZWlnaGJvcihjb25zdCBzdHJ1Y3Qgc29j
a2FkZHJfaW42ICphZGRyLCBzdHJ1Y3QgaWZuZXQgKmlmcCkKIHsKIAlzdHJ1Y3QgbmRfcHJlZml4
ICpwcjsKLQlzdHJ1Y3QgaWZhZGRyICpkc3RhZGRyOworCXN0cnVjdCBpZmFkZHIgKmlmYTsKIAlz
dHJ1Y3QgcnRfYWRkcmluZm8gaW5mbzsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW42IHJ0X2tleTsKIAlj
b25zdCBzdHJ1Y3Qgc29ja2FkZHIgKmRzdDY7CkBAIC0xMjg3LDkgKzEyODksNiBAQAogCWJ6ZXJv
KCZpbmZvLCBzaXplb2YoaW5mbykpOwogCWluZm8ucnRpX2luZm9bUlRBWF9EU1RdID0gKHN0cnVj
dCBzb2NrYWRkciAqKSZydF9rZXk7CiAKLQkvKiBBbHdheXMgdXNlIHRoZSBkZWZhdWx0IEZJQiBo
ZXJlLiBYWE1FIC0gd2h5PyAqLwotCWZpYm51bSA9IFJUX0RFRkFVTFRfRklCOwotCiAJLyoKIAkg
KiBJZiB0aGUgYWRkcmVzcyBtYXRjaGVzIG9uZSBvZiBvdXIgYWRkcmVzc2VzLAogCSAqIGl0IHNo
b3VsZCBiZSBhIG5laWdoYm9yLgpAQCAtMTMwMywxOSArMTMwMiwzMSBAQAogCQkJY29udGludWU7
CiAKIAkJaWYgKChwci0+bmRwcl9zdGF0ZWZsYWdzICYgTkRQUkZfT05MSU5LKSA9PSAwKSB7Ci0J
CQkvKiBBbHdheXMgdXNlIHRoZSBkZWZhdWx0IEZJQiBoZXJlLiAqLwogCQkJZHN0NiA9IChjb25z
dCBzdHJ1Y3Qgc29ja2FkZHIgKikmcHItPm5kcHJfcHJlZml4OwogCi0JCQlnZW5pZCA9IFZfbmQ2
X2xpc3RfZ2VuaWQ7Ci0JCQlORDZfUlVOTE9DSygpOwotCi0JCQkvKiBSZXN0b3JlIGxlbmd0aCBm
aWVsZCBiZWZvcmUgcmV0cnlpbmcgbG9va3VwICovCi0JCQlydF9rZXkuc2luNl9sZW4gPSBzaXpl
b2YocnRfa2V5KTsKLQkJCWVycm9yID0gcmliX2xvb2t1cF9pbmZvKGZpYm51bSwgZHN0NiwgMCwg
MCwgJmluZm8pOworCQkJLyoKKwkJCSAqIFdlIG9ubHkgbmVlZCB0byBjaGVjayBhbGwgRklCcyBp
ZiBhZGRfYWRkcl9hbGxmaWJzCisJCQkgKiBpcyB1bnNldC4gSWYgc2V0LCBjaGVja2luZyBhbnkg
RklCIHdpbGwgc3VmZmljZS4KKwkJCSAqLworCQkJZmlibnVtID0gVl9ydF9hZGRfYWRkcl9hbGxm
aWJzID8gcnRfbnVtZmlicyAtIDEgOiAwOworCQkJZm9yICg7IGZpYm51bSA8IHJ0X251bWZpYnM7
IGZpYm51bSsrKSB7CisJCQkJZ2VuaWQgPSBWX25kNl9saXN0X2dlbmlkOworCQkJCU5ENl9SVU5M
T0NLKCk7CiAKLQkJCU5ENl9STE9DSygpOwotCQkJaWYgKGdlbmlkICE9IFZfbmQ2X2xpc3RfZ2Vu
aWQpCi0JCQkJZ290byByZXN0YXJ0OworCQkJCS8qCisJCQkJICogUmVzdG9yZSBsZW5ndGggZmll
bGQgYmVmb3JlCisJCQkJICogcmV0cnlpbmcgbG9va3VwCisJCQkJICovCisJCQkJcnRfa2V5LnNp
bjZfbGVuID0gc2l6ZW9mKHJ0X2tleSk7CisJCQkJZXJyb3IgPSByaWJfbG9va3VwX2luZm8oZmli
bnVtLCBkc3Q2LCAwLCAwLAorCQkJCQkJICAgICAgICAmaW5mbyk7CisKKwkJCQlORDZfUkxPQ0so
KTsKKwkJCQlpZiAoZ2VuaWQgIT0gVl9uZDZfbGlzdF9nZW5pZCkKKwkJCQkJZ290byByZXN0YXJ0
OworCQkJCWlmIChlcnJvciA9PSAwKQorCQkJCQlicmVhazsKKwkJCX0KIAkJCWlmIChlcnJvciAh
PSAwKQogCQkJCWNvbnRpbnVlOwogCkBAIC0xMzQ2LDEzICsxMzU3LDE4IEBACiAJICogSWYgdGhl
IGFkZHJlc3MgaXMgYXNzaWduZWQgb24gdGhlIG5vZGUgb2YgdGhlIG90aGVyIHNpZGUgb2YKIAkg
KiBhIHAycCBpbnRlcmZhY2UsIHRoZSBhZGRyZXNzIHNob3VsZCBiZSBhIG5laWdoYm9yLgogCSAq
LwotCWRzdGFkZHIgPSBpZmFfaWZ3aXRoZHN0YWRkcigoY29uc3Qgc3RydWN0IHNvY2thZGRyICop
YWRkciwgUlRfQUxMX0ZJQlMpOwotCWlmIChkc3RhZGRyICE9IE5VTEwpIHsKLQkJaWYgKGRzdGFk
ZHItPmlmYV9pZnAgPT0gaWZwKSB7Ci0JCQlpZmFfZnJlZShkc3RhZGRyKTsKLQkJCXJldHVybiAo
MSk7CisJaWYgKGlmcC0+aWZfZmxhZ3MgJiBJRkZfUE9JTlRPUE9JTlQpIHsKKwkJSUZfQUREUl9S
TE9DSyhpZnApOworCQlUQUlMUV9GT1JFQUNIKGlmYSwgJmlmcC0+aWZfYWRkcmhlYWQsIGlmYV9s
aW5rKSB7CisJCQlpZiAoaWZhLT5pZmFfYWRkci0+c2FfZmFtaWx5ICE9IGFkZHItPnNpbjZfZmFt
aWx5KQorCQkJCWNvbnRpbnVlOworCQkJaWYgKGlmYS0+aWZhX2RzdGFkZHIgIT0gTlVMTCAmJgor
CQkJICAgIHNhX2VxdWFsKGFkZHIsIGlmYS0+aWZhX2RzdGFkZHIpKSB7CisJCQkJSUZfQUREUl9S
VU5MT0NLKGlmcCk7CisJCQkJcmV0dXJuIDE7CisJCQl9CiAJCX0KLQkJaWZhX2ZyZWUoZHN0YWRk
cik7CisJCUlGX0FERFJfUlVOTE9DSyhpZnApOwogCX0KIAogCS8qCkBAIC0xNDg1LDcgKzE1MDEs
NyBAQAogCQkJLyoKIAkJCSAqIFdlIG5lZWQgdG8gdW5sb2NrIHRvIGF2b2lkIGEgTE9SIHdpdGgg
cnQ2X2ZsdXNoKCkgd2l0aCB0aGUKIAkJCSAqIHJuaCBhbmQgZm9yIHRoZSBjYWxscyB0byBwZnhs
aXN0X29ubGlua19jaGVjaygpIGFuZAotCQkJICogZGVmcm91dGVyX3NlbGVjdCgpIGluIHRoZSBi
bG9jayBmdXJ0aGVyIGRvd24gZm9yIGNhbGxzCisJCQkgKiBkZWZyb3V0ZXJfc2VsZWN0X2ZpYigp
IGluIHRoZSBibG9jayBmdXJ0aGVyIGRvd24gZm9yIGNhbGxzCiAJCQkgKiBpbnRvIG5kNl9sb29r
dXAoKS4gIFdlIHN0aWxsIGhvbGQgYSByZWYuCiAJCQkgKi8KIAkJCUxMRV9XVU5MT0NLKGxuKTsK
QEAgLTE1MDAsNyArMTUxNiw3IEBACiAKIAkJaWYgKGRyKSB7CiAJCQkvKgotCQkJICogU2luY2Ug
ZGVmcm91dGVyX3NlbGVjdCgpIGRvZXMgbm90IGFmZmVjdCB0aGUKKwkJCSAqIFNpbmNlIGRlZnJv
dXRlcl9zZWxlY3RfZmliKCkgZG9lcyBub3QgYWZmZWN0IHRoZQogCQkJICogb24tbGluayBkZXRl
cm1pbmF0aW9uIGFuZCBNSVA2IG5lZWRzIHRoZSBjaGVjawogCQkJICogYmVmb3JlIHRoZSBkZWZh
dWx0IHJvdXRlciBzZWxlY3Rpb24sIHdlIHBlcmZvcm0KIAkJCSAqIHRoZSBjaGVjayBub3cuCkBA
IC0xNTEwLDcgKzE1MjYsNyBAQAogCQkJLyoKIAkJCSAqIFJlZnJlc2ggZGVmYXVsdCByb3V0ZXIg
bGlzdC4KIAkJCSAqLwotCQkJZGVmcm91dGVyX3NlbGVjdCgpOworCQkJZGVmcm91dGVyX3NlbGVj
dF9maWIoZHItPmlmcC0+aWZfZmliKTsKIAkJfQogCiAJCS8qCkBAIC0yMTA0LDIwICsyMTIwLDIw
IEBACiAJICogUXVlc3Rpb246IGNhbiB3ZSByZXN0cmljdCB0aGUgZmlyc3QgY29uZGl0aW9uIHRv
IHRoZSAiaXNfbmV3ZW50cnkiCiAJICogY2FzZT8KIAkgKiBYWFg6IHdoZW4gd2UgaGVhciBhbiBS
QSBmcm9tIGEgbmV3IHJvdXRlciB3aXRoIHRoZSBsaW5rLWxheWVyCi0JICogYWRkcmVzcyBvcHRp
b24sIGRlZnJvdXRlcl9zZWxlY3QoKSBpcyBjYWxsZWQgdHdpY2UsIHNpbmNlCisJICogYWRkcmVz
cyBvcHRpb24sIGRlZnJvdXRlcl9zZWxlY3RfZmliKCkgaXMgY2FsbGVkIHR3aWNlLCBzaW5jZQog
CSAqIGRlZnJ0cmxpc3RfdXBkYXRlIGNhbGxlZCB0aGUgZnVuY3Rpb24gYXMgd2VsbC4gIEhvd2V2
ZXIsIEkgYmVsaWV2ZQogCSAqIHdlIGNhbiBjb21wcm9taXNlIHRoZSBvdmVyaGVhZCwgc2luY2Ug
aXQgb25seSBoYXBwZW5zIHRoZSBmaXJzdAogCSAqIHRpbWUuCi0JICogWFhYOiBhbHRob3VnaCBk
ZWZyb3V0ZXJfc2VsZWN0KCkgc2hvdWxkIG5vdCBoYXZlIGEgYmFkIGVmZmVjdAorCSAqIFhYWDog
YWx0aG91Z2ggZGVmcm91dGVyX3NlbGVjdF9maWIoKSBzaG91bGQgbm90IGhhdmUgYSBiYWQgZWZm
ZWN0CiAJICogZm9yIHRob3NlIGFyZSBub3QgYXV0b2NvbmZpZ3VyZWQgaG9zdHMsIHdlIGV4cGxp
Y2l0bHkgYXZvaWQgc3VjaAogCSAqIGNhc2VzIGZvciBzYWZldHkuCiAJICovCiAJaWYgKChkb191
cGRhdGUgfHwgaXNfbmV3ZW50cnkpICYmIHJvdXRlciAmJgogCSAgICBORF9JRklORk8oaWZwKS0+
ZmxhZ3MgJiBORDZfSUZGX0FDQ0VQVF9SVEFEVikgewogCQkvKgogCQkgKiBndWFyYW50ZWVkIHJl
Y3Vyc2lvbgogCQkgKi8KLQkJZGVmcm91dGVyX3NlbGVjdCgpOworCQlkZWZyb3V0ZXJfc2VsZWN0
X2ZpYihpZnAtPmlmX2ZpYik7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zeXMvbmV0aW5ldDYvaW42
X3NyYy5jIGIvc3lzL25ldGluZXQ2L2luNl9zcmMuYwotLS0gYS9zeXMvbmV0aW5ldDYvaW42X3Ny
Yy5jCisrKyBiL3N5cy9uZXRpbmV0Ni9pbjZfc3JjLmMKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCSAq
LwogCS8qIGdldCB0aGUgb3V0Z29pbmcgaW50ZXJmYWNlICovCiAJaWYgKChlcnJvciA9IGluNl9z
ZWxlY3RpZihkc3Rzb2NrLCBvcHRzLCBtb3B0cywgJmlmcCwgb2lmcCwKLQkgICAgKGlucCAhPSBO
VUxMKSA/IGlucC0+aW5wX2luYy5pbmNfZmlibnVtIDogUlRfREVGQVVMVF9GSUIpKSAhPSAwKQor
CSAgICAoaW5wICE9IE5VTEwpID8gaW5wLT5pbnBfaW5jLmluY19maWJudW0gOiBmaWJudW0pKSAh
PSAwKQogCQlyZXR1cm4gKGVycm9yKTsKIAogI2lmZGVmIERJQUdOT1NUSUMKQEAgLTU2Myw3ICs1
NjMsNyBAQAogCXVpbnQzMl90IGZpYm51bTsKIAlpbnQgZXJyb3I7CiAKLQlmaWJudW0gPSAoaW5w
ICE9IE5VTEwpID8gaW5wLT5pbnBfaW5jLmluY19maWJudW0gOiBSVF9ERUZBVUxUX0ZJQjsKKwlm
aWJudW0gPSBpbnAtPmlucF9pbmMuaW5jX2ZpYm51bTsKIAlyZXRpZnAgPSBOVUxMOwogCiAJZXJy
b3IgPSBpbjZfc2VsZWN0c3JjKGZpYm51bSwgZHN0c29jaywgb3B0cywgaW5wLCBjcmVkLCAmcmV0
aWZwLCBzcmNwKTsKZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0Ni9pbjYuYyBiL3N5cy9uZXRpbmV0
Ni9pbjYuYwotLS0gYS9zeXMvbmV0aW5ldDYvaW42LmMKKysrIGIvc3lzL25ldGluZXQ2L2luNi5j
CkBAIC0xNTksNiArMTU5LDcgQEAKIAlzdHJ1Y3Qgc29ja2FkZHJfZGwgZ2F0ZXdheTsKIAlzdHJ1
Y3Qgc29ja2FkZHJfaW42IG1hc2ssIGFkZHI7CiAJc3RydWN0IHJ0ZW50cnkgcnQ7CisJaW50IGZp
Ym51bTsKIAogCS8qCiAJICogaW5pdGlhbGl6ZSBmb3IgcnRtc2cgZ2VuZXJhdGlvbgpAQCAtMTc2
LDggKzE3Nyw5IEBACiAJcnQucnRfZmxhZ3MgPSBSVEZfSE9TVCB8IFJURl9TVEFUSUM7CiAJaWYg
KGNtZCA9PSBSVE1fQUREKQogCQlydC5ydF9mbGFncyB8PSBSVEZfVVA7Ci0JLyogQW5ub3VuY2Ug
YXJyaXZhbCBvZiBsb2NhbCBhZGRyZXNzIHRvIGFsbCBGSUJzLiAqLwotCXJ0X25ld2FkZHJtc2co
Y21kLCAmaWEtPmlhX2lmYSwgMCwgJnJ0KTsKKwlmaWJudW0gPSBWX3J0X2FkZF9hZGRyX2FsbGZp
YnMgPyBSVF9BTExfRklCUyA6IGlhNjJpZmEoaWEpLT5pZmFfaWZwLT5pZl9maWI7CisJLyogQW5u
b3VuY2UgYXJyaXZhbCBvZiBsb2NhbCBhZGRyZXNzIHRvIHRoaXMgRklCLiAqLworCXJ0X25ld2Fk
ZHJtc2dfZmliKGNtZCwgJmlhLT5pYV9pZmEsIDAsICZydCwgZmlibnVtKTsKIH0KIAogaW50CkBA
IC0yMTE3LDE1ICsyMTE5LDE1IEBACiAJdWludDMyX3Qgc2NvcGVpZDsKIAlpbnQgZXJyb3I7CiAJ
Y2hhciBpcDZidWZbSU5FVDZfQUREUlNUUkxFTl07CisJaW50IGZpYm51bTsKIAogCUtBU1NFUlQo
bDNhZGRyLT5zYV9mYW1pbHkgPT0gQUZfSU5FVDYsCiAJICAgICgic2luX2ZhbWlseSAlZCIsIGwz
YWRkci0+c2FfZmFtaWx5KSk7CiAKLQkvKiBPdXIgbG9jYWwgYWRkcmVzc2VzIGFyZSBhbHdheXMg
b25seSBpbnN0YWxsZWQgb24gdGhlIGRlZmF1bHQgRklCLiAqLwotCiAJc2luNiA9IChjb25zdCBz
dHJ1Y3Qgc29ja2FkZHJfaW42ICopbDNhZGRyOwogCWluNl9zcGxpdHNjb3BlKCZzaW42LT5zaW42
X2FkZHIsICZkc3QsICZzY29wZWlkKTsKLQllcnJvciA9IGZpYjZfbG9va3VwX25oX2Jhc2ljKFJU
X0RFRkFVTFRfRklCLCAmZHN0LCBzY29wZWlkLCAwLCAwLCAmbmg2KTsKKwlmaWJudW0gPSBWX3J0
X2FkZF9hZGRyX2FsbGZpYnMgPyBSVF9ERUZBVUxUX0ZJQiA6IGlmcC0+aWZfZmliOworCWVycm9y
ID0gZmliNl9sb29rdXBfbmhfYmFzaWMoZmlibnVtLCAmZHN0LCBzY29wZWlkLCAwLCAwLCAmbmg2
KTsKIAlpZiAoZXJyb3IgIT0gMCB8fCAobmg2Lm5oX2ZsYWdzICYgTkhGX0dBVEVXQVkpIHx8IG5o
Ni5uaF9pZnAgIT0gaWZwKSB7CiAJCXN0cnVjdCBpZmFkZHIgKmlmYTsKIAkJLyoKZGlmZiAtLWdp
dCBhL3N5cy9uZXRpbmV0Ni9pY21wNi5jIGIvc3lzL25ldGluZXQ2L2ljbXA2LmMKLS0tIGEvc3lz
L25ldGluZXQ2L2ljbXA2LmMKKysrIGIvc3lzL25ldGluZXQ2L2ljbXA2LmMKQEAgLTIxNDcsNyAr
MjE0Nyw3IEBACiAJCSAqIHNvdXJjZSBhZGRyZXNzIG9mIHRoZSBlcnJvbmVvdXMgcGFja2V0Lgog
CQkgKi8KIAkJaW42X3NwbGl0c2NvcGUoJmlwNi0+aXA2X3NyYywgJmRzdDYsICZzY29wZWlkKTsK
LQkJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoUlRfREVGQVVMVF9GSUIsICZkc3Q2LAorCQll
cnJvciA9IGluNl9zZWxlY3RzcmNfYWRkcihNX0dFVEZJQihtKSwgJmRzdDYsCiAJCSAgICBzY29w
ZWlkLCBOVUxMLCAmc3JjNiwgJmhsaW0pOwogCiAJCWlmIChlcnJvcikgewpAQCAtMjI4OSw3ICsy
Mjg5LDcgQEAKIAl1aW50MzJfdCBzY29wZWlkOwogCiAJaW42X3NwbGl0c2NvcGUoJnJlZGRzdDYs
ICZrZHN0LCAmc2NvcGVpZCk7Ci0JaWYgKGZpYjZfbG9va3VwX25oX2Jhc2ljKFJUX0RFRkFVTFRf
RklCLCAma2RzdCwgc2NvcGVpZCwgMCwgMCwmbmg2KT09MCl7CisJaWYgKGZpYjZfbG9va3VwX25o
X2Jhc2ljKGlmcC0+aWZfZmliLCAma2RzdCwgc2NvcGVpZCwgMCwgMCwmbmg2KT09MCl7CiAJCWlm
ICgobmg2Lm5oX2ZsYWdzICYgTkhGX0dBVEVXQVkpID09IDApIHsKIAkJCW5kNmxvZygoTE9HX0VS
UiwKIAkJCSAgICAiSUNNUDYgcmVkaXJlY3QgcmVqZWN0ZWQ7IG5vIHJvdXRlICIKCg==


--b1_af28b28da6507256460ae036304910f5--



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