Bug 175794 - [ufs] [patch] remove cruft, fix inconsistent panic messages
Summary: [ufs] [patch] remove cruft, fix inconsistent panic messages
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 1.0-CURRENT
Hardware: Any Any
: Normal Affects Only Me
Assignee: Pedro F. Giffuni
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-03 11:20 UTC by Christoph Mallon
Modified: 2013-03-01 22:10 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Mallon 2013-02-03 11:20:00 UTC
Hi Pedro,

please have a look at the the attached patches, which remove some cruft
from ufs (as also noted by Bruce earlier) and correct inconsistent panic
messages.

	Christoph

--------------080109060307080707080700
Content-Type: text/plain; charset=UTF-8;
 name="0001-ufs-Remove-dead-assignment.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="0001-ufs-Remove-dead-assignment.patch"

RnJvbSA0MWQ1NmU3ZmYzNmUyZjRmOTZhOTllOTZjNWZhOWQxOWM4ODg3YmFhIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggTWFsbG9uIDxjaHJpc3RvcGgubWFs
bG9uQGdteC5kZT4KRGF0ZTogVHVlLCAyOSBKYW4gMjAxMyAwNjo0MzowMSArMDEwMApTdWJq
ZWN0OiBbUEFUQ0ggMS82XSB1ZnM6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgotLS0KIHN5
cy91ZnMvdWZzL3Vmc19sb29rdXAuYyB8IDEgLQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRp
b24oLSkKCmRpZmYgLS1naXQgYS9zeXMvdWZzL3Vmcy91ZnNfbG9va3VwLmMgYi9zeXMvdWZz
L3Vmcy91ZnNfbG9va3VwLmMKaW5kZXggZDcyMjc4ZC4uMDJmZGE5ZiAxMDA2NDQKLS0tIGEv
c3lzL3Vmcy91ZnMvdWZzX2xvb2t1cC5jCisrKyBiL3N5cy91ZnMvdWZzL3Vmc19sb29rdXAu
YwpAQCAtMTQzNCw3ICsxNDM0LDYgQEAgdWZzX2NoZWNrcGF0aChpbm9fdCBzb3VyY2VfaW5v
LCBpbm9fdCBwYXJlbnRfaW5vLCBzdHJ1Y3QgaW5vZGUgKnRhcmdldCwgc3RydWN0IHUKIAkJ
cmV0dXJuICgwKTsKIAlpZiAodGFyZ2V0LT5pX251bWJlciA9PSBST09USU5PKQogCQlyZXR1
cm4gKDApOwotCWVycm9yID0gMDsKIAlmb3IgKDs7KSB7CiAJCWVycm9yID0gdWZzX2Rpcl9k
ZF9pbm8odnAsIGNyZWQsICZkZF9pbm8pOwogCQlpZiAoZXJyb3IgIT0gMCkKLS0gCjEuOC4x
LjIKCg==
--------------080109060307080707080700
Content-Type: text/plain; charset=UTF-8;
 name="0002-ufs-Remove-the-unused-macro-MAXSYMLINKLEN.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="0002-ufs-Remove-the-unused-macro-MAXSYMLINKLEN.patch"

RnJvbSBlYzY2NDkxZDAwNzEyNTliYzVkMjliOWVkOGM2YTZjZjQyYzk4OGQ0IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggTWFsbG9uIDxjaHJpc3RvcGgubWFs
bG9uQGdteC5kZT4KRGF0ZTogU3VuLCAzIEZlYiAyMDEzIDExOjMwOjM3ICswMTAwClN1Ympl
Y3Q6IFtQQVRDSCAyLzZdIHVmczogUmVtb3ZlIHRoZSB1bnVzZWQgbWFjcm8gTUFYU1lNTElO
S0xFTigpLgoKLS0tCiBzeXMvdWZzL3Vmcy9pbm9kZS5oIHwgNCAtLS0tCiAxIGZpbGUgY2hh
bmdlZCwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zeXMvdWZzL3Vmcy9pbm9kZS5o
IGIvc3lzL3Vmcy91ZnMvaW5vZGUuaAppbmRleCA1OWIxNzBjLi42NDE2NjMyIDEwMDY0NAot
LS0gYS9zeXMvdWZzL3Vmcy9pbm9kZS5oCisrKyBiL3N5cy91ZnMvdWZzL2lub2RlLmgKQEAg
LTE1MSwxMCArMTUxLDYgQEAgc3RydWN0IGlub2RlIHsKIAkJKGlwKS0+aV9kaW4yLT5kIyNm
aWVsZCA9ICh2YWwpOyBcCiAJfSB3aGlsZSAoMCkKIAotI2RlZmluZQlNQVhTWU1MSU5LTEVO
KGlwKSBcCi0JKChpcCktPmlfdW1wLT51bV9mc3R5cGUgPT0gVUZTMSkgPyBcCi0JKChOREFE
RFIgKyBOSUFERFIpICogc2l6ZW9mKHVmczFfZGFkZHJfdCkpIDogXAotCSgoTkRBRERSICsg
TklBRERSKSAqIHNpemVvZih1ZnMyX2RhZGRyX3QpKQogI2RlZmluZQlTSE9SVExJTksoaXAp
IFwKIAkoKChpcCktPmlfdW1wLT51bV9mc3R5cGUgPT0gVUZTMSkgPyBcCiAJKGNhZGRyX3Qp
KGlwKS0+aV9kaW4xLT5kaV9kYiA6IChjYWRkcl90KShpcCktPmlfZGluMi0+ZGlfZGIpCi0t
IAoxLjguMS4yCgo=
--------------080109060307080707080700
Content-Type: text/plain; charset=UTF-8;
 name="0003-sys-Add-the-macro-PANIC-which-acts-like-panic-but-au.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename*0="0003-sys-Add-the-macro-PANIC-which-acts-like-panic-but-au.pa";
 filename*1="tch"

RnJvbSA4MDdiYzg2NTJiM2ZmOGI3YzI2ZGNhNWM3NGUwYTcxNWQzYmY2YWNjIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggTWFsbG9uIDxjaHJpc3RvcGgubWFs
bG9uQGdteC5kZT4KRGF0ZTogTW9uLCAyOCBKYW4gMjAxMyAxNjowMzo0OCArMDEwMApTdWJq
ZWN0OiBbUEFUQ0ggMy82XSBzeXM6IEFkZCB0aGUgbWFjcm8gUEFOSUMoKSwgd2hpY2ggYWN0
cyBsaWtlIHBhbmljKCksIGJ1dAogYXV0b21hdGljYWxseSBhZGRzIHRoZSBuYW1lIG9mIHRo
ZSBjYWxsaW5nIGZ1bmN0aW9uLgoKLS0tCiBzeXMvc3lzL3N5c3RtLmggfCA2ICsrKysrKwog
MSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3N5cy9zeXMv
c3lzdG0uaCBiL3N5cy9zeXMvc3lzdG0uaAppbmRleCBkZDk2ZDcwLi41ZmY5ZWIyIDEwMDY0
NAotLS0gYS9zeXMvc3lzL3N5c3RtLmgKKysrIGIvc3lzL3N5cy9zeXN0bS5oCkBAIC0xNzYs
NiArMTc2LDEyIEBAIHZvaWQJZ193YWl0aWRsZSh2b2lkKTsKIAogdm9pZAlwYW5pYyhjb25z
dCBjaGFyICosIC4uLikgX19kZWFkMiBfX3ByaW50Zmxpa2UoMSwgMik7CiAKKy8qCisgKiBQ
YW5pYyBhbmQgYXV0b21hdGljYWxseSBwcmVwZW5kIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlv
biB0byB0aGUgcGFuaWMKKyAqIG1lc3NhZ2UuCisgKi8KKyNkZWZpbmUgUEFOSUMoZm10LCAu
Li4pIHBhbmljKCIlczogIiBmbXQsIF9fZnVuY19fLCAjI19fVkFfQVJHU19fKQorCiB2b2lk
CWNwdV9ib290KGludCk7CiB2b2lkCWNwdV9mbHVzaF9kY2FjaGUodm9pZCAqLCBzaXplX3Qp
Owogdm9pZAljcHVfcm9vdGNvbmYodm9pZCk7Ci0tIAoxLjguMS4yCgo=
--------------080109060307080707080700
Content-Type: text/plain; charset=UTF-8;
 name="0004-ufs-Use-PANIC-instead-of-panic-with-inconsistent-fun.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename*0="0004-ufs-Use-PANIC-instead-of-panic-with-inconsistent-fun.pa";
 filename*1="tch"

RnJvbSA4NWU3MWEzMmE1OTgzMjAxMDZkNTIwYzcwNjVhM2Q3MWJjMDJiZTU0IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggTWFsbG9uIDxjaHJpc3RvcGgubWFs
bG9uQGdteC5kZT4KRGF0ZTogU3VuLCAzIEZlYiAyMDEzIDExOjM4OjI3ICswMTAwClN1Ympl
Y3Q6IFtQQVRDSCA0LzZdIHVmczogVXNlIFBBTklDKCkgaW5zdGVhZCBvZiBwYW5pYygpIHdp
dGggaW5jb25zaXN0ZW50CiBmdW5jdGlvbiBuYW1lcy4KCi0tLQogc3lzL3Vmcy91ZnMvdWZz
X2FjbC5jICAgICAgfCAgNCArKy0tCiBzeXMvdWZzL3Vmcy91ZnNfYm1hcC5jICAgICB8ICA2
ICsrKy0tLQogc3lzL3Vmcy91ZnMvdWZzX2Rpcmhhc2guYyAgfCAyNCArKysrKysrKysrKy0t
LS0tLS0tLS0tLQogc3lzL3Vmcy91ZnMvdWZzX2V4dGF0dHIuYyAgfCAgNiArKystLS0KIHN5
cy91ZnMvdWZzL3Vmc19nam91cm5hbC5jIHwgIDIgKy0KIHN5cy91ZnMvdWZzL3Vmc19sb29r
dXAuYyAgIHwgMTQgKysrKysrKy0tLS0tLS0KIHN5cy91ZnMvdWZzL3Vmc19xdW90YS5jICAg
IHwgMTAgKysrKystLS0tLQogc3lzL3Vmcy91ZnMvdWZzX3Zub3BzLmMgICAgfCA0OCArKysr
KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA4IGZpbGVzIGNo
YW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L3N5cy91ZnMvdWZzL3Vmc19hY2wuYyBiL3N5cy91ZnMvdWZzL3Vmc19hY2wuYwppbmRleCA0
MDIxYjBhLi5mNDNlYmEwIDEwMDY0NAotLS0gYS9zeXMvdWZzL3Vmcy91ZnNfYWNsLmMKKysr
IGIvc3lzL3Vmcy91ZnMvdWZzX2FjbC5jCkBAIC0xMDYsMTIgKzEwNiwxMiBAQCB1ZnNfc3lu
Y19hY2xfZnJvbV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgYWNsICphY2wpCiAJ
CQlicmVhazsKIAkKIAkJZGVmYXVsdDoKLQkJCXBhbmljKCJ1ZnNfc3luY19hY2xfZnJvbV9p
bm9kZSgpOiBiYWQgYWVfdGFnIik7CisJCQlQQU5JQygiYmFkIGFlX3RhZyIpOwogCQl9CiAJ
fQogCiAJaWYgKGFjbF9ncm91cF9vYmogPT0gTlVMTCkKLQkJcGFuaWMoInVmc19zeW5jX2Fj
bF9mcm9tX2lub2RlKCk6IG5vIEFDTF9HUk9VUF9PQkoiKTsKKwkJUEFOSUMoIm5vIEFDTF9H
Uk9VUF9PQkoiKTsKIAogCWlmIChhY2xfbWFzayA9PSBOVUxMKSB7CiAJCS8qCmRpZmYgLS1n
aXQgYS9zeXMvdWZzL3Vmcy91ZnNfYm1hcC5jIGIvc3lzL3Vmcy91ZnMvdWZzX2JtYXAuYwpp
bmRleCAyMjg4N2M4Li41ZWE0NzYyIDEwMDY0NAotLS0gYS9zeXMvdWZzL3Vmcy91ZnNfYm1h
cC5jCisrKyBiL3N5cy91ZnMvdWZzL3Vmc19ibWFwLmMKQEAgLTE1MiwxMSArMTUyLDExIEBA
IHVmc19ibWFwYXJyYXkodnAsIGJuLCBibnAsIG5icCwgcnVucCwgcnVuYikKIAkJCWlmICgq
Ym5wID09IDApCiAJCQkJKmJucCA9IC0xOwogCQkJaWYgKG5icCA9PSBOVUxMKQotCQkJCXBh
bmljKCJ1ZnNfYm1hcGFycmF5OiBtYXBwaW5nIGV4dCBkYXRhIik7CisJCQkJUEFOSUMoIm1h
cHBpbmcgZXh0IGRhdGEiKTsKIAkJCW5icC0+Yl94ZmxhZ3MgfD0gQlhfQUxUREFUQTsKIAkJ
CXJldHVybiAoMCk7CiAJCX0gZWxzZSB7Ci0JCQlwYW5pYygidWZzX2JtYXBhcnJheTogYmxr
bm8gb3V0IG9mIHJhbmdlIik7CisJCQlQQU5JQygiYmxrbm8gb3V0IG9mIHJhbmdlIik7CiAJ
CX0KIAkJLyoKIAkJICogU2luY2UgdGhpcyBpcyBGRlMgaW5kZXBlbmRlbnQgY29kZSwgd2Ug
YXJlIG91dCBvZgpAQCAtMjE2LDcgKzIxNiw3IEBAIHVmc19ibWFwYXJyYXkodnAsIGJuLCBi
bnAsIG5icCwgcnVucCwgcnVuYikKIAkJaWYgKChicC0+Yl9mbGFncyAmIEJfQ0FDSEUpID09
IDApIHsKICNpZmRlZiBJTlZBUklBTlRTCiAJCQlpZiAoIWRhZGRyKQotCQkJCXBhbmljKCJ1
ZnNfYm1hcGFycmF5OiBpbmRpcmVjdCBibG9jayBub3QgaW4gY2FjaGUiKTsKKwkJCQlQQU5J
QygiaW5kaXJlY3QgYmxvY2sgbm90IGluIGNhY2hlIik7CiAjZW5kaWYKIAkJCWJwLT5iX2Js
a25vID0gYmxrcHRydG9kYih1bXAsIGRhZGRyKTsKIAkJCWJwLT5iX2lvY21kID0gQklPX1JF
QUQ7CmRpZmYgLS1naXQgYS9zeXMvdWZzL3Vmcy91ZnNfZGlyaGFzaC5jIGIvc3lzL3Vmcy91
ZnMvdWZzX2Rpcmhhc2guYwppbmRleCBiNTFmZGZmLi4yMTcxNmM0IDEwMDY0NAotLS0gYS9z
eXMvdWZzL3Vmcy91ZnNfZGlyaGFzaC5jCisrKyBiL3N5cy91ZnMvdWZzL3Vmc19kaXJoYXNo
LmMKQEAgLTYyMSw3ICs2MjEsNyBAQCByZXN0YXJ0OgogCQlpZiAob2Zmc2V0ID09IERJUkhB
U0hfREVMKQogCQkJY29udGludWU7CiAJCWlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+PSBp
cC0+aV9zaXplKQotCQkJcGFuaWMoInVmc2Rpcmhhc2hfbG9va3VwOiBiYWQgb2Zmc2V0IGlu
IGhhc2ggYXJyYXkiKTsKKwkJCVBBTklDKCJiYWQgb2Zmc2V0IGluIGhhc2ggYXJyYXkiKTsK
IAkJaWYgKChvZmZzZXQgJiB+Ym1hc2spICE9IGJsa29mZikgewogCQkJaWYgKGJwICE9IE5V
TEwpCiAJCQkJYnJlbHNlKGJwKTsKQEAgLTc2MSw3ICs3NjEsNyBAQCB1ZnNkaXJoYXNoX2Zp
bmRmcmVlKHN0cnVjdCBpbm9kZSAqaXAsIGludCBzbG90bmVlZGVkLCBpbnQgKnNsb3RzaXpl
KQogCQlyZXR1cm4gKC0xKTsKIAl9CiAJaWYgKGZyZWVieXRlcyA8IHNsb3RuZWVkZWQpCi0J
CXBhbmljKCJ1ZnNkaXJoYXNoX2ZpbmRmcmVlOiBmcmVlIG1pc21hdGNoIik7CisJCVBBTklD
KCJmcmVlIG1pc21hdGNoIik7CiAJYnJlbHNlKGJwKTsKIAkqc2xvdHNpemUgPSBwb3MgKyBp
IC0gc2xvdHN0YXJ0OwogCXJldHVybiAoc2xvdHN0YXJ0KTsKQEAgLTk0OSwxMCArOTQ5LDEw
IEBAIHVmc2Rpcmhhc2hfZGlydHJ1bmMoc3RydWN0IGlub2RlICppcCwgZG9mZl90IG9mZnNl
dCkKIAkJZGgtPmRoX2ZpcnN0ZnJlZVtESF9ORlNUQVRTXSA9IC0xOwogCWZvciAoaSA9IGJs
b2NrOyBpIDwgZGgtPmRoX2RpcmJsa3M7IGkrKykKIAkJaWYgKGRoLT5kaF9ibGtmcmVlW2ld
ICE9IERJUkJMS1NJWiAvIERJUkFMSUdOKQotCQkJcGFuaWMoInVmc2Rpcmhhc2hfZGlydHJ1
bmM6IGJsb2NrcyBpbiB1c2UiKTsKKwkJCVBBTklDKCJibG9ja3MgaW4gdXNlIik7CiAJZm9y
IChpID0gMDsgaSA8IERIX05GU1RBVFM7IGkrKykKIAkJaWYgKGRoLT5kaF9maXJzdGZyZWVb
aV0gPj0gYmxvY2spCi0JCQlwYW5pYygidWZzZGlyaGFzaF9kaXJ0cnVuYzogZmlyc3QgZnJl
ZSBjb3JydXB0Iik7CisJCQlQQU5JQygiZmlyc3QgZnJlZSBjb3JydXB0Iik7CiAJZGgtPmRo
X2RpcmJsa3MgPSBibG9jazsKIAl1ZnNkaXJoYXNoX3JlbGVhc2UoZGgpOwogfQpAQCAtOTgw
LDEzICs5ODAsMTMgQEAgdWZzZGlyaGFzaF9jaGVja2Jsb2NrKHN0cnVjdCBpbm9kZSAqaXAs
IGNoYXIgKmJ1ZiwgZG9mZl90IG9mZnNldCkKIAogCWJsb2NrID0gb2Zmc2V0IC8gRElSQkxL
U0laOwogCWlmICgob2Zmc2V0ICYgKERJUkJMS1NJWiAtIDEpKSAhPSAwIHx8IGJsb2NrID49
IGRoLT5kaF9kaXJibGtzKQotCQlwYW5pYygidWZzZGlyaGFzaF9jaGVja2Jsb2NrOiBiYWQg
b2Zmc2V0Iik7CisJCVBBTklDKCJiYWQgb2Zmc2V0Iik7CiAKIAluZnJlZSA9IDA7CiAJZm9y
IChpID0gMDsgaSA8IERJUkJMS1NJWjsgaSArPSBkcC0+ZF9yZWNsZW4pIHsKIAkJZHAgPSAo
c3RydWN0IGRpcmVjdCAqKShidWYgKyBpKTsKIAkJaWYgKGRwLT5kX3JlY2xlbiA9PSAwIHx8
IGkgKyBkcC0+ZF9yZWNsZW4gPiBESVJCTEtTSVopCi0JCQlwYW5pYygidWZzZGlyaGFzaF9j
aGVja2Jsb2NrOiBiYWQgZGlyIik7CisJCQlQQU5JQygiYmFkIGRpciIpOwogCiAJCWlmIChk
cC0+ZF9pbm8gPT0gMCkgewogI2lmIDAKQEAgLTk5Nyw3ICs5OTcsNyBAQCB1ZnNkaXJoYXNo
X2NoZWNrYmxvY2soc3RydWN0IGlub2RlICppcCwgY2hhciAqYnVmLCBkb2ZmX3Qgb2Zmc2V0
KQogCQkJICogb2Zmc2V0cywgYW5kIGZzY2sgZG9lcyBub3QgZml4IHRoZW0uCiAJCQkgKi8K
IAkJCWlmIChpICE9IDApCi0JCQkJcGFuaWMoInVmc2Rpcmhhc2hfY2hlY2tibG9jazogYmFk
IGRpciBpbm9kZSIpOworCQkJCVBBTklDKCJiYWQgZGlyIGlub2RlIik7CiAjZW5kaWYKIAkJ
CW5mcmVlICs9IGRwLT5kX3JlY2xlbjsKIAkJCWNvbnRpbnVlOwpAQCAtMTAwOSwxNyArMTAw
OSwxNyBAQCB1ZnNkaXJoYXNoX2NoZWNrYmxvY2soc3RydWN0IGlub2RlICppcCwgY2hhciAq
YnVmLCBkb2ZmX3Qgb2Zmc2V0KQogCQluZnJlZSArPSBkcC0+ZF9yZWNsZW4gLSBESVJTSVoo
MCwgZHApOwogCX0KIAlpZiAoaSAhPSBESVJCTEtTSVopCi0JCXBhbmljKCJ1ZnNkaXJoYXNo
X2NoZWNrYmxvY2s6IGJhZCBkaXIgZW5kIik7CisJCVBBTklDKCJiYWQgZGlyIGVuZCIpOwog
CiAJaWYgKGRoLT5kaF9ibGtmcmVlW2Jsb2NrXSAqIERJUkFMSUdOICE9IG5mcmVlKQotCQlw
YW5pYygidWZzZGlyaGFzaF9jaGVja2Jsb2NrOiBiYWQgZnJlZSBjb3VudCIpOworCQlQQU5J
QygiYmFkIGZyZWUgY291bnQiKTsKIAogCWZmc2xvdCA9IEJMS0ZSRUUySURYKG5mcmVlIC8g
RElSQUxJR04pOwogCWZvciAoaSA9IDA7IGkgPD0gREhfTkZTVEFUUzsgaSsrKQogCQlpZiAo
ZGgtPmRoX2ZpcnN0ZnJlZVtpXSA9PSBibG9jayAmJiBpICE9IGZmc2xvdCkKLQkJCXBhbmlj
KCJ1ZnNkaXJoYXNoX2NoZWNrYmxvY2s6IGJhZCBmaXJzdC1mcmVlIik7CisJCQlQQU5JQygi
YmFkIGZpcnN0LWZyZWUiKTsKIAlpZiAoZGgtPmRoX2ZpcnN0ZnJlZVtmZnNsb3RdID09IC0x
KQotCQlwYW5pYygidWZzZGlyaGFzaF9jaGVja2Jsb2NrOiBtaXNzaW5nIGZpcnN0LWZyZWUg
ZW50cnkiKTsKKwkJUEFOSUMoIm1pc3NpbmcgZmlyc3QtZnJlZSBlbnRyeSIpOwogCXVmc2Rp
cmhhc2hfcmVsZWFzZShkaCk7CiB9CiAKQEAgLTExMDAsNyArMTEwMCw3IEBAIHVmc2Rpcmhh
c2hfZmluZHNsb3Qoc3RydWN0IGRpcmhhc2ggKmRoLCBjaGFyICpuYW1lLCBpbnQgbmFtZWxl
biwgZG9mZl90IG9mZnNldCkKIAkgICAgREhfRU5UUlkoZGgsIHNsb3QpICE9IERJUkhBU0hf
RU1QVFkpCiAJCXNsb3QgPSBXUkFQSU5DUihzbG90LCBkaC0+ZGhfaGxlbik7CiAJaWYgKERI
X0VOVFJZKGRoLCBzbG90KSAhPSBvZmZzZXQpCi0JCXBhbmljKCJ1ZnNkaXJoYXNoX2ZpbmRz
bG90OiAnJS4qcycgbm90IGZvdW5kIiwgbmFtZWxlbiwgbmFtZSk7CisJCVBBTklDKCInJS4q
cycgbm90IGZvdW5kIiwgbmFtZWxlbiwgbmFtZSk7CiAKIAlyZXR1cm4gKHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvc3lzL3Vmcy91ZnMvdWZzX2V4dGF0dHIuYyBiL3N5cy91ZnMvdWZzL3Vm
c19leHRhdHRyLmMKaW5kZXggZDUyZjY1MC4uODljZDU2ZCAxMDA2NDQKLS0tIGEvc3lzL3Vm
cy91ZnMvdWZzX2V4dGF0dHIuYworKysgYi9zeXMvdWZzL3Vmcy91ZnNfZXh0YXR0ci5jCkBA
IC0xODgsMTAgKzE4OCwxMCBAQCB1ZnNfZXh0YXR0cl91ZXBtX2Rlc3Ryb3koc3RydWN0IHVm
c19leHRhdHRyX3Blcl9tb3VudCAqdWVwbSkKIHsKIAogCWlmICghKHVlcG0tPnVlcG1fZmxh
Z3MgJiBVRlNfRVhUQVRUUl9VRVBNX0lOSVRJQUxJWkVEKSkKLQkJcGFuaWMoInVmc19leHRh
dHRyX3VlcG1fZGVzdHJveTogbm90IGluaXRpYWxpemVkIik7CisJCVBBTklDKCJub3QgaW5p
dGlhbGl6ZWQiKTsKIAogCWlmICgodWVwbS0+dWVwbV9mbGFncyAmIFVGU19FWFRBVFRSX1VF
UE1fU1RBUlRFRCkpCi0JCXBhbmljKCJ1ZnNfZXh0YXR0cl91ZXBtX2Rlc3Ryb3k6IGNhbGxl
ZCB3aGlsZSBzdGlsbCBzdGFydGVkIik7CisJCVBBTklDKCJjYWxsZWQgd2hpbGUgc3RpbGwg
c3RhcnRlZCIpOwogCiAJLyoKIAkgKiBJdCdzIG5vdCBjbGVhciB0aGF0IGVpdGhlciBvcmRl
ciBmb3IgdGhlIG5leHQgdHdvIGxpbmVzIGlzCkBAIC0yOTgsNyArMjk4LDcgQEAgdWZzX2V4
dGF0dHJfbG9va3VwKHN0cnVjdCB2bm9kZSAqc3RhcnRfZHZwLCBpbnQgbG9ja3BhcmVudCwg
Y2hhciAqZGlybmFtZSwKIAl9CiAvKgogCWlmICh0YXJnZXRfdnAgPT0gc3RhcnRfZHZwKQot
CQlwYW5pYygidWZzX2V4dGF0dHJfbG9va3VwOiB0YXJnZXRfdnAgPT0gc3RhcnRfZHZwIik7
CisJCVBBTklDKCJ0YXJnZXRfdnAgPT0gc3RhcnRfZHZwIik7CiAqLwogCiAJaWYgKHRhcmdl
dF92cCAhPSBzdGFydF9kdnAgJiYgbG9ja3BhcmVudCA9PSBVRV9HRVRESVJfTE9DS1BBUkVO
VF9ET05UKQpkaWZmIC0tZ2l0IGEvc3lzL3Vmcy91ZnMvdWZzX2dqb3VybmFsLmMgYi9zeXMv
dWZzL3Vmcy91ZnNfZ2pvdXJuYWwuYwppbmRleCA4ZTM1YzA4Li4wNWEyMTVkIDEwMDY0NAot
LS0gYS9zeXMvdWZzL3Vmcy91ZnNfZ2pvdXJuYWwuYworKysgYi9zeXMvdWZzL3Vmcy91ZnNf
Z2pvdXJuYWwuYwpAQCAtODAsNyArODAsNyBAQCB1ZnNfZ2pvdXJuYWxfbW9kcmVmKHN0cnVj
dCB2bm9kZSAqdnAsIGludCBjb3VudCkKIAkJY2dibm8gPSBmc2J0b2RiKGZzLCBjZ3RvZChm
cywgY2cpKTsKIAl9CiAJaWYgKCh1X2ludClpbm8gPj0gZnMtPmZzX2lwZyAqIGZzLT5mc19u
Y2cpCi0JCXBhbmljKCJ1ZnNfZ2pvdXJuYWxfbW9kcmVmOiByYW5nZTogZGV2ID0gJXMsIGlu
byA9ICVsdSwgZnMgPSAlcyIsCisJCVBBTklDKCJyYW5nZTogZGV2ID0gJXMsIGlubyA9ICVs
dSwgZnMgPSAlcyIsCiAJCSAgICBkZXZ0b25hbWUoZGV2KSwgKHVfbG9uZylpbm8sIGZzLT5m
c19mc21udCk7CiAJaWYgKChlcnJvciA9IGJyZWFkKGRldnZwLCBjZ2JubywgKGludClmcy0+
ZnNfY2dzaXplLCBOT0NSRUQsICZicCkpKSB7CiAJCWJyZWxzZShicCk7CmRpZmYgLS1naXQg
YS9zeXMvdWZzL3Vmcy91ZnNfbG9va3VwLmMgYi9zeXMvdWZzL3Vmcy91ZnNfbG9va3VwLmMK
aW5kZXggMDJmZGE5Zi4uMTc2Yzg3OSAxMDA2NDQKLS0tIGEvc3lzL3Vmcy91ZnMvdWZzX2xv
b2t1cC5jCisrKyBiL3N5cy91ZnMvdWZzL3Vmc19sb29rdXAuYwpAQCAtNzcwLDcgKzc3MCw3
IEBAIHVmc19kaXJiYWQoaXAsIG9mZnNldCwgaG93KQogCiAJbXAgPSBJVE9WKGlwKS0+dl9t
b3VudDsKIAlpZiAoKG1wLT5tbnRfZmxhZyAmIE1OVF9SRE9OTFkpID09IDApCi0JCXBhbmlj
KCJ1ZnNfZGlyYmFkOiAlczogYmFkIGRpciBpbm8gJWp1IGF0IG9mZnNldCAlbGQ6ICVzIiwK
KwkJUEFOSUMoIiVzOiBiYWQgZGlyIGlubyAlanUgYXQgb2Zmc2V0ICVsZDogJXMiLAogCQkg
ICAgbXAtPm1udF9zdGF0LmZfbW50b25uYW1lLCAodWludG1heF90KWlwLT5pX251bWJlciwK
IAkJICAgIChsb25nKW9mZnNldCwgaG93KTsKIAllbHNlCkBAIC04MzksNyArODM5LDcgQEAg
dWZzX21ha2VkaXJlbnRyeShpcCwgY25wLCBuZXdkaXJwKQogCiAjaWZkZWYgSU5WQVJJQU5U
UwogCWlmICgoY25wLT5jbl9mbGFncyAmIFNBVkVOQU1FKSA9PSAwKQotCQlwYW5pYygidWZz
X21ha2VkaXJlbnRyeTogbWlzc2luZyBuYW1lIik7CisJCVBBTklDKCJtaXNzaW5nIG5hbWUi
KTsKICNlbmRpZgogCW5ld2RpcnAtPmRfaW5vID0gaXAtPmlfbnVtYmVyOwogCW5ld2RpcnAt
PmRfbmFtbGVuID0gY25wLT5jbl9uYW1lbGVuOwpAQCAtODk4LDcgKzg5OCw3IEBAIHVmc19k
aXJlbnRlcihkdnAsIHR2cCwgZGlycCwgY25wLCBuZXdkaXJicCwgaXNyZW5hbWUpCiAJCSAq
IG5ldyBlbnRyeSBpbnRvIGEgZnJlc2ggYmxvY2suCiAJCSAqLwogCQlpZiAoZHAtPmlfb2Zm
c2V0ICYgKERJUkJMS1NJWiAtIDEpKQotCQkJcGFuaWMoInVmc19kaXJlbnRlcjogbmV3Ymxr
Iik7CisJCQlQQU5JQygibmV3YmxrIik7CiAJCWZsYWdzID0gQkFfQ0xSQlVGOwogCQlpZiAo
IURPSU5HU09GVERFUChkdnApICYmICFET0lOR0FTWU5DKGR2cCkpCiAJCQlmbGFncyB8PSBJ
T19TWU5DOwpAQCAtMTA4MSwxMSArMTA4MSwxMSBAQCB1ZnNfZGlyZW50ZXIoZHZwLCB0dnAs
IGRpcnAsIGNucCwgbmV3ZGlyYnAsIGlzcmVuYW1lKQogCSAgICAoZXAtPmRfaW5vID09IFdJ
Tk8gJiYgbmFtbGVuID09IGRpcnAtPmRfbmFtbGVuICYmCiAJICAgICBiY21wKGVwLT5kX25h
bWUsIGRpcnAtPmRfbmFtZSwgZGlycC0+ZF9uYW1sZW4pID09IDApKSB7CiAJCWlmIChzcGFj
ZWZyZWUgKyBkc2l6ZSA8IG5ld2VudHJ5c2l6ZSkKLQkJCXBhbmljKCJ1ZnNfZGlyZW50ZXI6
IGNvbXBhY3QxIik7CisJCQlQQU5JQygiY29tcGFjdDEiKTsKIAkJZGlycC0+ZF9yZWNsZW4g
PSBzcGFjZWZyZWUgKyBkc2l6ZTsKIAl9IGVsc2UgewogCQlpZiAoc3BhY2VmcmVlIDwgbmV3
ZW50cnlzaXplKQotCQkJcGFuaWMoInVmc19kaXJlbnRlcjogY29tcGFjdDIiKTsKKwkJCVBB
TklDKCJjb21wYWN0MiIpOwogCQlkaXJwLT5kX3JlY2xlbiA9IHNwYWNlZnJlZTsKIAkJZXAt
PmRfcmVjbGVuID0gZHNpemU7CiAJCWVwID0gKHN0cnVjdCBkaXJlY3QgKikoKGNoYXIgKill
cCArIGRzaXplKTsKQEAgLTEyMTEsNyArMTIxMSw3IEBAIHVmc19kaXJyZW1vdmUoZHZwLCBp
cCwgZmxhZ3MsIGlzcm1kaXIpCiAJCXVmc2Rpcmhhc2hfcmVtb3ZlKGRwLCByZXAsIGRwLT5p
X29mZnNldCk7CiAjZW5kaWYKIAlpZiAoaXAgJiYgcmVwLT5kX2lubyAhPSBpcC0+aV9udW1i
ZXIpCi0JCXBhbmljKCJ1ZnNfZGlycmVtb3ZlOiBpcCAlanUgZG9lcyBub3QgbWF0Y2ggZGly
ZW50IGlubyAlanVcbiIsCisJCVBBTklDKCJpcCAlanUgZG9lcyBub3QgbWF0Y2ggZGlyZW50
IGlubyAlanVcbiIsCiAJCSAgICAodWludG1heF90KWlwLT5pX251bWJlciwgKHVpbnRtYXhf
dClyZXAtPmRfaW5vKTsKIAlpZiAoZHAtPmlfY291bnQgPT0gMCkgewogCQkvKgpAQCAtMTQ2
OCw3ICsxNDY4LDcgQEAgdWZzX2NoZWNrcGF0aChpbm9fdCBzb3VyY2VfaW5vLCBpbm9fdCBw
YXJlbnRfaW5vLCBzdHJ1Y3QgaW5vZGUgKnRhcmdldCwgc3RydWN0IHUKIAl9CiAKIAlpZiAo
ZXJyb3IgPT0gRU5PVERJUikKLQkJcGFuaWMoImNoZWNrcGF0aDogLi4gbm90IGEgZGlyZWN0
b3J5XG4iKTsKKwkJUEFOSUMoIi4uIG5vdCBhIGRpcmVjdG9yeVxuIik7CiAJaWYgKHZwICE9
IHR2cCkKIAkJdnB1dCh2cCk7CiAJcmV0dXJuIChlcnJvcik7CmRpZmYgLS1naXQgYS9zeXMv
dWZzL3Vmcy91ZnNfcXVvdGEuYyBiL3N5cy91ZnMvdWZzL3Vmc19xdW90YS5jCmluZGV4IDg3
YWM5YTEuLjliZTk0OTYgMTAwNjQ0Ci0tLSBhL3N5cy91ZnMvdWZzL3Vmc19xdW90YS5jCisr
KyBiL3N5cy91ZnMvdWZzL3Vmc19xdW90YS5jCkBAIC00NzYsNyArNDc2LDcgQEAgY2hrZHF1
b3Qoc3RydWN0IGlub2RlICppcCkKIAkJaWYgKGlwLT5pX2RxdW90W2ldID09IE5PRFFVT1Qp
IHsKIAkJCVVGU19VTkxPQ0sodW1wKTsKIAkJCXZwcmludCgiY2hrZHF1b3Q6IG1pc3Npbmcg
ZHF1b3QiLCBJVE9WKGlwKSk7Ci0JCQlwYW5pYygiY2hrZHF1b3Q6IG1pc3NpbmcgZHF1b3Qi
KTsKKwkJCVBBTklDKCJtaXNzaW5nIGRxdW90Iik7CiAJCX0KIAl9CiAJVUZTX1VOTE9DSyh1
bXApOwpAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgaGZvdW5kOgkJRFFJX0xPQ0soZHEpOwogCQkJ
cmV0dXJuIChFVVNFUlMpOwogCQl9CiAJCWlmIChkcS0+ZHFfY250IHx8IChkcS0+ZHFfZmxh
Z3MgJiBEUV9NT0QpKQotCQkJcGFuaWMoImRxZ2V0OiBmcmVlIGRxdW90IGlzbid0ICVwIiwg
ZHEpOworCQkJUEFOSUMoImZyZWUgZHF1b3QgaXNuJ3QgJXAiLCBkcSk7CiAJCVRBSUxRX1JF
TU9WRSgmZHFmcmVlbGlzdCwgZHEsIGRxX2ZyZWVsaXN0KTsKIAkJaWYgKGRxLT5kcV91bXAg
IT0gTlVMTCkKIAkJCUxJU1RfUkVNT1ZFKGRxLCBkcV9oYXNoKTsKQEAgLTE1MjMsMTIgKzE1
MjMsMTIgQEAgZHFzeW5jKHN0cnVjdCB2bm9kZSAqdnAsIHN0cnVjdCBkcXVvdCAqZHEpCiAJ
bXAgPSBOVUxMOwogCWVycm9yID0gMDsKIAlpZiAoZHEgPT0gTk9EUVVPVCkKLQkJcGFuaWMo
ImRxc3luYzogZHF1b3QiKTsKKwkJUEFOSUMoImRxdW90Iik7CiAJaWYgKCh1bXAgPSBkcS0+
ZHFfdW1wKSA9PSBOVUxMKQogCQlyZXR1cm4gKDApOwogCVVGU19MT0NLKHVtcCk7CiAJaWYg
KChkcXZwID0gdW1wLT51bV9xdW90YXNbZHEtPmRxX3R5cGVdKSA9PSBOVUxMVlApCi0JCXBh
bmljKCJkcXN5bmM6IGZpbGUiKTsKKwkJUEFOSUMoImZpbGUiKTsKIAl2cmVmKGRxdnApOwog
CVVGU19VTkxPQ0sodW1wKTsKIApAQCAtMTYxMiw3ICsxNjEyLDcgQEAgZHFmbHVzaChzdHJ1
Y3Qgdm5vZGUgKnZwKQogCQkJaWYgKGRxLT5kcV91bXAtPnVtX3F1b3Rhc1tkcS0+ZHFfdHlw
ZV0gIT0gdnApCiAJCQkJY29udGludWU7CiAJCQlpZiAoZHEtPmRxX2NudCkKLQkJCQlwYW5p
YygiZHFmbHVzaDogc3RyYXkgZHF1b3QiKTsKKwkJCQlQQU5JQygic3RyYXkgZHF1b3QiKTsK
IAkJCUxJU1RfUkVNT1ZFKGRxLCBkcV9oYXNoKTsKIAkJCWRxLT5kcV91bXAgPSAoc3RydWN0
IHVmc21vdW50ICopMDsKIAkJfQpkaWZmIC0tZ2l0IGEvc3lzL3Vmcy91ZnMvdWZzX3Zub3Bz
LmMgYi9zeXMvdWZzL3Vmcy91ZnNfdm5vcHMuYwppbmRleCBmNjliMWY5Li42MjQwMTkwIDEw
MDY0NAotLS0gYS9zeXMvdWZzL3Vmcy91ZnNfdm5vcHMuYworKysgYi9zeXMvdWZzL3Vmcy91
ZnNfdm5vcHMuYwpAQCAtOTEzLDcgKzkxMyw3IEBAIHVmc19jaG93bih2cCwgdWlkLCBnaWQs
IGNyZWQsIHRkKQogCXJldHVybiAoZXJyb3IpOwogZ29vZDoKIAlpZiAoZ2V0aW5vcXVvdGEo
aXApKQotCQlwYW5pYygidWZzX2Nob3duOiBsb3N0IHF1b3RhIik7CisJCVBBTklDKCJsb3N0
IHF1b3RhIik7CiAjZW5kaWYgLyogUVVPVEEgKi8KIAlpcC0+aV9mbGFnIHw9IElOX0NIQU5H
RTsKIAlpZiAoKGlwLT5pX21vZGUgJiAoSVNVSUQgfCBJU0dJRCkpICYmIChvdWlkICE9IHVp
ZCB8fCBvZ2lkICE9IGdpZCkpIHsKQEAgLTk5MSwxNSArOTkxLDE0IEBAIHVmc19saW5rKGFw
KQogCiAjaWZkZWYgSU5WQVJJQU5UUwogCWlmICgoY25wLT5jbl9mbGFncyAmIEhBU0JVRikg
PT0gMCkKLQkJcGFuaWMoInVmc19saW5rOiBubyBuYW1lIik7CisJCVBBTklDKCJubyBuYW1l
Iik7CiAjZW5kaWYKIAlpZiAodGR2cC0+dl9tb3VudCAhPSB2cC0+dl9tb3VudCkgewogCQll
cnJvciA9IEVYREVWOwogCQlnb3RvIG91dDsKIAl9CiAJaWYgKFZUT0kodGR2cCktPmlfZWZm
bmxpbmsgPCAyKQotCQlwYW5pYygidWZzX2xpbms6IEJhZCBsaW5rIGNvdW50ICVkIG9uIHBh
cmVudCIsCi0JCSAgICBWVE9JKHRkdnApLT5pX2VmZm5saW5rKTsKKwkJUEFOSUMoIkJhZCBs
aW5rIGNvdW50ICVkIG9uIHBhcmVudCIsIFZUT0kodGR2cCktPmlfZWZmbmxpbmspOwogCWlw
ID0gVlRPSSh2cCk7CiAJaWYgKChubGlua190KWlwLT5pX25saW5rID49IExJTktfTUFYKSB7
CiAJCWVycm9yID0gRU1MSU5LOwpAQCAtMTA2OCw5ICsxMDY3LDkgQEAgdWZzX3doaXRlb3V0
KGFwKQogCQkvKiBjcmVhdGUgYSBuZXcgZGlyZWN0b3J5IHdoaXRlb3V0ICovCiAjaWZkZWYg
SU5WQVJJQU5UUwogCQlpZiAoKGNucC0+Y25fZmxhZ3MgJiBTQVZFTkFNRSkgPT0gMCkKLQkJ
CXBhbmljKCJ1ZnNfd2hpdGVvdXQ6IG1pc3NpbmcgbmFtZSIpOworCQkJUEFOSUMoIm1pc3Np
bmcgbmFtZSIpOwogCQlpZiAoZHZwLT52X21vdW50LT5tbnRfbWF4c3ltbGlua2xlbiA8PSAw
KQotCQkJcGFuaWMoInVmc193aGl0ZW91dDogb2xkIGZvcm1hdCBmaWxlc3lzdGVtIik7CisJ
CQlQQU5JQygib2xkIGZvcm1hdCBmaWxlc3lzdGVtIik7CiAjZW5kaWYKIAogCQluZXdkaXIu
ZF9pbm8gPSBXSU5POwpAQCAtMTA4NCwxNCArMTA4MywxNCBAQCB1ZnNfd2hpdGVvdXQoYXAp
CiAJCS8qIHJlbW92ZSBhbiBleGlzdGluZyBkaXJlY3Rvcnkgd2hpdGVvdXQgKi8KICNpZmRl
ZiBJTlZBUklBTlRTCiAJCWlmIChkdnAtPnZfbW91bnQtPm1udF9tYXhzeW1saW5rbGVuIDw9
IDApCi0JCQlwYW5pYygidWZzX3doaXRlb3V0OiBvbGQgZm9ybWF0IGZpbGVzeXN0ZW0iKTsK
KwkJCVBBTklDKCJvbGQgZm9ybWF0IGZpbGVzeXN0ZW0iKTsKICNlbmRpZgogCiAJCWNucC0+
Y25fZmxhZ3MgJj0gfkRPV0hJVEVPVVQ7CiAJCWVycm9yID0gdWZzX2RpcnJlbW92ZShkdnAs
IE5VTEwsIGNucC0+Y25fZmxhZ3MsIDApOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwYW5p
YygidWZzX3doaXRlb3V0OiB1bmtub3duIG9wIik7CisJCVBBTklDKCJ1bmtub3duIG9wIik7
CiAJfQogCXJldHVybiAoZXJyb3IpOwogfQpAQCAtMTE1NSw3ICsxMTU0LDcgQEAgdWZzX3Jl
bmFtZShhcCkKICNpZmRlZiBJTlZBUklBTlRTCiAJaWYgKCh0Y25wLT5jbl9mbGFncyAmIEhB
U0JVRikgPT0gMCB8fAogCSAgICAoZmNucC0+Y25fZmxhZ3MgJiBIQVNCVUYpID09IDApCi0J
CXBhbmljKCJ1ZnNfcmVuYW1lOiBubyBuYW1lIik7CisJCVBBTklDKCJubyBuYW1lIik7CiAj
ZW5kaWYKIAllbmRvZmYgPSAwOwogCW1wID0gdGR2cC0+dl9tb3VudDsKQEAgLTEzNTQsMTEg
KzEzNTMsMTEgQEAgcmVsb2NrOgogCQlpZiAoZXJyb3IpCiAJCQlnb3RvIHVubG9ja291dDsK
IAkJaWYgKCh0Y25wLT5jbl9mbGFncyAmIFNBVkVTVEFSVCkgPT0gMCkKLQkJCXBhbmljKCJ1
ZnNfcmVuYW1lOiBsb3N0IHRvIHN0YXJ0ZGlyIik7CisJCQlQQU5JQygibG9zdCB0byBzdGFy
dGRpciIpOwogCX0KIAlpZiAoZmlwLT5pX2VmZm5saW5rID09IDAgfHwgZmRwLT5pX2VmZm5s
aW5rID09IDAgfHwKIAkgICAgdGRwLT5pX2VmZm5saW5rID09IDApCi0JCXBhbmljKCJCYWQg
ZWZmbmxpbmsgZmlwICVwLCBmZHAgJXAsIHRkcCAlcCIsIGZpcCwgZmRwLCB0ZHApOworCQlQ
QU5JQygiQmFkIGVmZm5saW5rIGZpcCAlcCwgZmRwICVwLCB0ZHAgJXAiLCBmaXAsIGZkcCwg
dGRwKTsKIAogCS8qCiAJICogMSkgQnVtcCBsaW5rIGNvdW50IHdoaWxlIHdlJ3JlIG1vdmlu
ZyBzdHVmZgpAQCAtMTM4NSw3ICsxMzg0LDcgQEAgcmVsb2NrOgogCSAqLwogCWlmICh0aXAg
PT0gTlVMTCkgewogCQlpZiAodGRwLT5pX2RldiAhPSBmaXAtPmlfZGV2KQotCQkJcGFuaWMo
InVmc19yZW5hbWU6IEVYREVWIik7CisJCQlQQU5JQygiRVhERVYiKTsKIAkJaWYgKGRvaW5n
ZGlyZWN0b3J5ICYmIG5ld3BhcmVudCkgewogCQkJLyoKIAkJCSAqIEFjY291bnQgZm9yICIu
LiIgaW4gbmV3IGRpcmVjdG9yeS4KQEAgLTE0MDksMTIgKzE0MDgsMTIgQEAgcmVsb2NrOgog
CQkJZW5kb2ZmID0gdGRwLT5pX2VuZG9mZjsKIAl9IGVsc2UgewogCQlpZiAodGlwLT5pX2Rl
diAhPSB0ZHAtPmlfZGV2IHx8IHRpcC0+aV9kZXYgIT0gZmlwLT5pX2RldikKLQkJCXBhbmlj
KCJ1ZnNfcmVuYW1lOiBFWERFViIpOworCQkJUEFOSUMoIkVYREVWIik7CiAJCS8qCiAJCSAq
IFNob3J0IGNpcmN1aXQgcmVuYW1lKGZvbywgZm9vKS4KIAkJICovCiAJCWlmICh0aXAtPmlf
bnVtYmVyID09IGZpcC0+aV9udW1iZXIpCi0JCQlwYW5pYygidWZzX3JlbmFtZTogc2FtZSBm
aWxlIik7CisJCQlQQU5JQygic2FtZSBmaWxlIik7CiAJCS8qCiAJCSAqIElmIHRoZSBwYXJl
bnQgZGlyZWN0b3J5IGlzICJzdGlja3kiLCB0aGVuIHRoZSBjYWxsZXIKIAkJICogbXVzdCBw
b3NzZXNzIFZBRE1JTiBmb3IgdGhlIHBhcmVudCBkaXJlY3RvcnksIG9yIHRoZQpAQCAtMTUw
Miw5ICsxNTAxLDkgQEAgcmVsb2NrOgogCWlmIChmZHZwID09IHRkdnApIHsKIAkJZXJyb3Ig
PSB1ZnNfbG9va3VwX2lubyhmZHZwLCBOVUxMLCBmY25wLCAmaW5vKTsKIAkJaWYgKGVycm9y
KQotCQkJcGFuaWMoInVmc19yZW5hbWU6IGZyb20gZW50cnkgd2VudCBhd2F5ISIpOworCQkJ
UEFOSUMoImZyb20gZW50cnkgd2VudCBhd2F5ISIpOwogCQlpZiAoaW5vICE9IGZpcC0+aV9u
dW1iZXIpCi0JCQlwYW5pYygidWZzX3JlbmFtZTogaW5vIG1pc21hdGNoICVqdSAhPSAlanVc
biIsCisJCQlQQU5JQygiaW5vIG1pc21hdGNoICVqdSAhPSAlanVcbiIsCiAJCQkgICAgKHVp
bnRtYXhfdClpbm8sICh1aW50bWF4X3QpZmlwLT5pX251bWJlcik7CiAJfQogCS8qCkBAIC0x
NjYzLDcgKzE2NjIsNyBAQCB1ZnNfZG9fcG9zaXgxZV9hY2xfaW5oZXJpdGFuY2VfZGlyKHN0
cnVjdCB2bm9kZSAqZHZwLCBzdHJ1Y3Qgdm5vZGUgKnR2cCwKIAkJICovCiAJCXByaW50Zigi
dWZzX21rZGlyOiBWT1BfR0VUQUNMKCkgYnV0IG5vIFZPUF9TRVRBQ0woKVxuIik7CiAJCS8q
Ci0JCXBhbmljKCJ1ZnNfbWtkaXI6IFZPUF9HRVRBQ0woKSBidXQgbm8gVk9QX1NFVEFDTCgp
Iik7CisJCVBBTklDKCJWT1BfR0VUQUNMKCkgYnV0IG5vIFZPUF9TRVRBQ0woKSIpOwogCQkg
Ki8KIAkJYnJlYWs7CiAKQEAgLTE3NDMsOCArMTc0Miw3IEBAIHVmc19kb19wb3NpeDFlX2Fj
bF9pbmhlcml0YW5jZV9maWxlKHN0cnVjdCB2bm9kZSAqZHZwLCBzdHJ1Y3Qgdm5vZGUgKnR2
cCwKIAkJICovCiAJCXByaW50ZigidWZzX21ha2Vpbm9kZTogVk9QX0dFVEFDTCgpIGJ1dCBu
byAiCiAJCSAgICAiVk9QX1NFVEFDTCgpXG4iKTsKLQkJLyogcGFuaWMoInVmc19tYWtlaW5v
ZGU6IFZPUF9HRVRBQ0woKSBidXQgbm8gIgotCQkgICAgIlZPUF9TRVRBQ0woKSIpOyAqLwor
CQkvKiBQQU5JQygiVk9QX0dFVEFDTCgpIGJ1dCBubyBWT1BfU0VUQUNMKCkiKTsgKi8KIAkJ
YnJlYWs7CiAKIAlkZWZhdWx0OgpAQCAtMTgwOCw3ICsxODA2LDcgQEAgdWZzX21rZGlyKGFw
KQogCiAjaWZkZWYgSU5WQVJJQU5UUwogCWlmICgoY25wLT5jbl9mbGFncyAmIEhBU0JVRikg
PT0gMCkKLQkJcGFuaWMoInVmc19ta2Rpcjogbm8gbmFtZSIpOworCQlQQU5JQygibm8gbmFt
ZSIpOwogI2VuZGlmCiAJZHAgPSBWVE9JKGR2cCk7CiAJaWYgKChubGlua190KWRwLT5pX25s
aW5rID49IExJTktfTUFYKSB7CkBAIC0yMDU3LDggKzIwNTUsNyBAQCB1ZnNfcm1kaXIoYXAp
CiAJCWdvdG8gb3V0OwogCX0KIAlpZiAoZHAtPmlfZWZmbmxpbmsgPCAzKQotCQlwYW5pYygi
dWZzX2RpcnJlbTogQmFkIGxpbmsgY291bnQgJWQgb24gcGFyZW50IiwKLQkJICAgIGRwLT5p
X2VmZm5saW5rKTsKKwkJUEFOSUMoIkJhZCBsaW5rIGNvdW50ICVkIG9uIHBhcmVudCIsIGRw
LT5pX2VmZm5saW5rKTsKIAlpZiAoIXVmc19kaXJlbXB0eShpcCwgZHAtPmlfbnVtYmVyLCBj
bnAtPmNuX2NyZWQpKSB7CiAJCWVycm9yID0gRU5PVEVNUFRZOwogCQlnb3RvIG91dDsKQEAg
LTIyNTMsNyArMjI1MCw3IEBAIHVmc19yZWFkZGlyKGFwKQogCQl1X2xvbmcgKmNvb2tpZXA7
CiAKIAkJaWYgKHVpby0+dWlvX3NlZ2ZsZyAhPSBVSU9fU1lTU1BBQ0UgfHwgdWlvLT51aW9f
aW92Y250ICE9IDEpCi0JCQlwYW5pYygidWZzX3JlYWRkaXI6IHVuZXhwZWN0ZWQgdWlvIGZy
b20gTkZTIHNlcnZlciIpOworCQkJUEFOSUMoInVuZXhwZWN0ZWQgdWlvIGZyb20gTkZTIHNl
cnZlciIpOwogCQlkcFN0YXJ0ID0gKHN0cnVjdCBkaXJlbnQgKikKIAkJICAgICgoY2hhciAq
KXVpby0+dWlvX2lvdi0+aW92X2Jhc2UgLSAodWlvLT51aW9fb2Zmc2V0IC0gb2ZmKSk7CiAJ
CWRwRW5kID0gKHN0cnVjdCBkaXJlbnQgKikgdWlvLT51aW9faW92LT5pb3ZfYmFzZTsKQEAg
LTI1OTMsMTUgKzI1OTAsMTQgQEAgdWZzX21ha2Vpbm9kZShtb2RlLCBkdnAsIHZwcCwgY25w
KQogCXBkaXIgPSBWVE9JKGR2cCk7CiAjaWZkZWYgSU5WQVJJQU5UUwogCWlmICgoY25wLT5j
bl9mbGFncyAmIEhBU0JVRikgPT0gMCkKLQkJcGFuaWMoInVmc19tYWtlaW5vZGU6IG5vIG5h
bWUiKTsKKwkJUEFOSUMoIm5vIG5hbWUiKTsKICNlbmRpZgogCSp2cHAgPSBOVUxMOwogCWlm
ICgobW9kZSAmIElGTVQpID09IDApCiAJCW1vZGUgfD0gSUZSRUc7CiAKIAlpZiAoVlRPSShk
dnApLT5pX2VmZm5saW5rIDwgMikKLQkJcGFuaWMoInVmc19tYWtlaW5vZGU6IEJhZCBsaW5r
IGNvdW50ICVkIG9uIHBhcmVudCIsCi0JCSAgICBWVE9JKGR2cCktPmlfZWZmbmxpbmspOwor
CQlQQU5JQygiQmFkIGxpbmsgY291bnQgJWQgb24gcGFyZW50IiwgVlRPSShkdnApLT5pX2Vm
Zm5saW5rKTsKIAllcnJvciA9IFVGU19WQUxMT0MoZHZwLCBtb2RlLCBjbnAtPmNuX2NyZWQs
ICZ0dnApOwogCWlmIChlcnJvcikKIAkJcmV0dXJuIChlcnJvcik7Ci0tIAoxLjguMS4yCgo=
--------------080109060307080707080700
Content-Type: text/plain; charset=UTF-8;
 name="0005-ffs-Use-PANIC-instead-of-panic-with-inconsistent-fun.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename*0="0005-ffs-Use-PANIC-instead-of-panic-with-inconsistent-fun.pa";
 filename*1="tch"

RnJvbSBlMDA2OTFjNWZjMDkyYTc4YjBmNGZmMjViZjIwYzI0YmViZDZkMTQ4IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggTWFsbG9uIDxjaHJpc3RvcGgubWFs
bG9uQGdteC5kZT4KRGF0ZTogU3VuLCAzIEZlYiAyMDEzIDEyOjA1OjU4ICswMTAwClN1Ympl
Y3Q6IFtQQVRDSCA1LzZdIGZmczogVXNlIFBBTklDKCkgaW5zdGVhZCBvZiBwYW5pYygpIHdp
dGggaW5jb25zaXN0ZW50CiBmdW5jdGlvbiBuYW1lcy4KCi0tLQogc3lzL3Vmcy9mZnMvZmZz
X2FsbG9jLmMgICAgfCAgODIgKysrKy0tLS0KIHN5cy91ZnMvZmZzL2Zmc19iYWxsb2MuYyAg
IHwgIDE4ICstCiBzeXMvdWZzL2Zmcy9mZnNfaW5vZGUuYyAgICB8ICAxOCArLQogc3lzL3Vm
cy9mZnMvZmZzX3Jhd3JlYWQuYyAgfCAgIDIgKy0KIHN5cy91ZnMvZmZzL2Zmc19zbmFwc2hv
dC5jIHwgIDM4ICsrLS0KIHN5cy91ZnMvZmZzL2Zmc19zb2Z0ZGVwLmMgIHwgNTExICsrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3lzL3Vmcy9mZnMv
ZmZzX3N1YnIuYyAgICAgfCAgMTAgKy0KIHN5cy91ZnMvZmZzL2Zmc19zdXNwZW5kLmMgIHwg
ICAyICstCiBzeXMvdWZzL2Zmcy9mZnNfdmZzb3BzLmMgICB8ICAxOSArLQogc3lzL3Vmcy9m
ZnMvZmZzX3Zub3BzLmMgICAgfCAgMjYgKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAzMzcgaW5z
ZXJ0aW9ucygrKSwgMzg5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3N5cy91ZnMvZmZz
L2Zmc19hbGxvYy5jIGIvc3lzL3Vmcy9mZnMvZmZzX2FsbG9jLmMKaW5kZXggNWFkNTc3NS4u
YWEyNTNmMyAxMDA2NDQKLS0tIGEvc3lzL3Vmcy9mZnMvZmZzX2FsbG9jLmMKKysrIGIvc3lz
L3Vmcy9mZnMvZmZzX2FsbG9jLmMKQEAgLTE3MiwxMCArMTcyLDEwIEBAIGZmc19hbGxvYyhp
cCwgbGJuLCBicHJlZiwgc2l6ZSwgZmxhZ3MsIGNyZWQsIGJucCkKIAkJcHJpbnRmKCJkZXYg
PSAlcywgYnNpemUgPSAlbGQsIHNpemUgPSAlZCwgZnMgPSAlc1xuIiwKIAkJICAgIGRldnRv
bmFtZShpcC0+aV9kZXYpLCAobG9uZylmcy0+ZnNfYnNpemUsIHNpemUsCiAJCSAgICBmcy0+
ZnNfZnNtbnQpOwotCQlwYW5pYygiZmZzX2FsbG9jOiBiYWQgc2l6ZSIpOworCQlQQU5JQygi
YmFkIHNpemUiKTsKIAl9CiAJaWYgKGNyZWQgPT0gTk9DUkVEKQotCQlwYW5pYygiZmZzX2Fs
bG9jOiBtaXNzaW5nIGNyZWRlbnRpYWwiKTsKKwkJUEFOSUMoIm1pc3NpbmcgY3JlZGVudGlh
bCIpOwogI2VuZGlmIC8qIElOVkFSSUFOVFMgKi8KIAlyZWNsYWltZWQgPSAwOwogcmV0cnk6
CkBAIC0yNjgsMTcgKzI2OCwxNyBAQCBmZnNfcmVhbGxvY2NnKGlwLCBsYnByZXYsIGJwcmV2
LCBicHJlZiwgb3NpemUsIG5zaXplLCBmbGFncywgY3JlZCwgYnBwKQogCW10eF9hc3NlcnQo
VUZTX01UWCh1bXApLCBNQV9PV05FRCk7CiAjaWZkZWYgSU5WQVJJQU5UUwogCWlmICh2cC0+
dl9tb3VudC0+bW50X2tlcm5fZmxhZyAmIE1OVEtfU1VTUEVOREVEKQotCQlwYW5pYygiZmZz
X3JlYWxsb2NjZzogYWxsb2NhdGlvbiBvbiBzdXNwZW5kZWQgZmlsZXN5c3RlbSIpOworCQlQ
QU5JQygiYWxsb2NhdGlvbiBvbiBzdXNwZW5kZWQgZmlsZXN5c3RlbSIpOwogCWlmICgodV9p
bnQpb3NpemUgPiBmcy0+ZnNfYnNpemUgfHwgZnJhZ29mZihmcywgb3NpemUpICE9IDAgfHwK
IAkgICAgKHVfaW50KW5zaXplID4gZnMtPmZzX2JzaXplIHx8IGZyYWdvZmYoZnMsIG5zaXpl
KSAhPSAwKSB7CiAJCXByaW50ZigKIAkJImRldiA9ICVzLCBic2l6ZSA9ICVsZCwgb3NpemUg
PSAlZCwgbnNpemUgPSAlZCwgZnMgPSAlc1xuIiwKIAkJICAgIGRldnRvbmFtZShpcC0+aV9k
ZXYpLCAobG9uZylmcy0+ZnNfYnNpemUsIG9zaXplLAogCQkgICAgbnNpemUsIGZzLT5mc19m
c21udCk7Ci0JCXBhbmljKCJmZnNfcmVhbGxvY2NnOiBiYWQgc2l6ZSIpOworCQlQQU5JQygi
YmFkIHNpemUiKTsKIAl9CiAJaWYgKGNyZWQgPT0gTk9DUkVEKQotCQlwYW5pYygiZmZzX3Jl
YWxsb2NjZzogbWlzc2luZyBjcmVkZW50aWFsIik7CisJCVBBTklDKCJtaXNzaW5nIGNyZWRl
bnRpYWwiKTsKICNlbmRpZiAvKiBJTlZBUklBTlRTICovCiAJcmVjbGFpbWVkID0gMDsKIHJl
dHJ5OgpAQCAtMjkwLDcgKzI5MCw3IEBAIHJldHJ5OgogCQlwcmludGYoImRldiA9ICVzLCBi
c2l6ZSA9ICVsZCwgYnByZXYgPSAlamQsIGZzID0gJXNcbiIsCiAJCSAgICBkZXZ0b25hbWUo
aXAtPmlfZGV2KSwgKGxvbmcpZnMtPmZzX2JzaXplLCAoaW50bWF4X3QpYnByZXYsCiAJCSAg
ICBmcy0+ZnNfZnNtbnQpOwotCQlwYW5pYygiZmZzX3JlYWxsb2NjZzogYmFkIGJwcmV2Iik7
CisJCVBBTklDKCJiYWQgYnByZXYiKTsKIAl9CiAJVUZTX1VOTE9DSyh1bXApOwogCS8qCkBA
IC0zMDQsNyArMzA0LDcgQEAgcmV0cnk6CiAKIAlpZiAoYnAtPmJfYmxrbm8gPT0gYnAtPmJf
bGJsa25vKSB7CiAJCWlmIChsYnByZXYgPj0gTkRBRERSKQotCQkJcGFuaWMoImZmc19yZWFs
bG9jY2c6IGxicHJldiBvdXQgb2YgcmFuZ2UiKTsKKwkJCVBBTklDKCJsYnByZXYgb3V0IG9m
IHJhbmdlIik7CiAJCWJwLT5iX2Jsa25vID0gZnNidG9kYihmcywgYnByZXYpOwogCX0KIApA
QCAtMzIzLDcgKzMyMyw3IEBAIHJldHJ5OgogCWJubyA9IGZmc19mcmFnZXh0ZW5kKGlwLCBj
ZywgYnByZXYsIG9zaXplLCBuc2l6ZSk7CiAJaWYgKGJubykgewogCQlpZiAoYnAtPmJfYmxr
bm8gIT0gZnNidG9kYihmcywgYm5vKSkKLQkJCXBhbmljKCJmZnNfcmVhbGxvY2NnOiBiYWQg
YmxvY2tubyIpOworCQkJUEFOSUMoImJhZCBibG9ja25vIik7CiAJCWRlbHRhID0gYnRvZGIo
bnNpemUgLSBvc2l6ZSk7CiAJCURJUF9TRVQoaXAsIGlfYmxvY2tzLCBESVAoaXAsIGlfYmxv
Y2tzKSArIGRlbHRhKTsKIAkJaWYgKGZsYWdzICYgSU9fRVhUKQpAQCAtMzgzLDcgKzM4Myw3
IEBAIHJldHJ5OgogCWRlZmF1bHQ6CiAJCXByaW50ZigiZGV2ID0gJXMsIG9wdGltID0gJWxk
LCBmcyA9ICVzXG4iLAogCQkgICAgZGV2dG9uYW1lKGlwLT5pX2RldiksIChsb25nKWZzLT5m
c19vcHRpbSwgZnMtPmZzX2ZzbW50KTsKLQkJcGFuaWMoImZmc19yZWFsbG9jY2c6IGJhZCBv
cHRpbSIpOworCQlQQU5JQygiYmFkIG9wdGltIik7CiAJCS8qIE5PVFJFQUNIRUQgKi8KIAl9
CiAJYm5vID0gZmZzX2hhc2hhbGxvYyhpcCwgY2csIGJwcmVmLCByZXF1ZXN0LCBuc2l6ZSwg
ZmZzX2FsbG9jY2cpOwpAQCAtNTI0LDE1ICs1MjQsMTUgQEAgZmZzX3JlYWxsb2NibGtzX3Vm
czEoYXApCiAJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogCQlpZiAoIWZmc19jaGVja2Js
ayhpcCwKIAkJICAgZGJ0b2ZzYihmcywgYnVmbGlzdC0+YnNfY2hpbGRyZW5baV0tPmJfYmxr
bm8pLCBmcy0+ZnNfYnNpemUpKQotCQkJcGFuaWMoImZmc19yZWFsbG9jYmxrczogdW5hbGxv
Y2F0ZWQgYmxvY2sgMSIpOworCQkJUEFOSUMoInVuYWxsb2NhdGVkIGJsb2NrIDEiKTsKIAlm
b3IgKGkgPSAxOyBpIDwgbGVuOyBpKyspCiAJCWlmIChidWZsaXN0LT5ic19jaGlsZHJlbltp
XS0+Yl9sYmxrbm8gIT0gc3RhcnRfbGJuICsgaSkKLQkJCXBhbmljKCJmZnNfcmVhbGxvY2Js
a3M6IG5vbi1sb2dpY2FsIGNsdXN0ZXIiKTsKKwkJCVBBTklDKCJub24tbG9naWNhbCBjbHVz
dGVyIik7CiAJYmxrbm8gPSBidWZsaXN0LT5ic19jaGlsZHJlblswXS0+Yl9ibGtubzsKIAlz
c2l6ZSA9IGZzYnRvZGIoZnMsIGZzLT5mc19mcmFnKTsKIAlmb3IgKGkgPSAxOyBpIDwgbGVu
IC0gMTsgaSsrKQogCQlpZiAoYnVmbGlzdC0+YnNfY2hpbGRyZW5baV0tPmJfYmxrbm8gIT0g
Ymxrbm8gKyAoaSAqIHNzaXplKSkKLQkJCXBhbmljKCJmZnNfcmVhbGxvY2Jsa3M6IG5vbi1w
aHlzaWNhbCBjbHVzdGVyICVkIiwgaSk7CisJCQlQQU5JQygibm9uLXBoeXNpY2FsIGNsdXN0
ZXIgJWQiLCBpKTsKICNlbmRpZgogCS8qCiAJICogSWYgdGhlIGNsdXN0ZXIgY3Jvc3NlcyB0
aGUgYm91bmRhcnkgZm9yIHRoZSBmaXJzdCBpbmRpcmVjdApAQCAtNTgxLDcgKzU4MSw3IEBA
IGZmc19yZWFsbG9jYmxrc191ZnMxKGFwKQogI2lmZGVmIElOVkFSSUFOVFMKIAkJaWYgKHN0
YXJ0X2x2bCA+IDAgJiYKIAkJICAgIHN0YXJ0X2FwW3N0YXJ0X2x2bCAtIDFdLmluX2xibiA9
PSBpZHAtPmluX2xibikKLQkJCXBhbmljKCJmZnNfcmVhbGxvY2Jsazogc3RhcnQgPT0gZW5k
Iik7CisJCQlQQU5JQygic3RhcnQgPT0gZW5kIik7CiAjZW5kaWYKIAkJc3NpemUgPSBsZW4g
LSAoaWRwLT5pbl9vZmYgKyAxKTsKIAkJaWYgKGJyZWFkKHZwLCBpZHAtPmluX2xibiwgKGlu
dClmcy0+ZnNfYnNpemUsIE5PQ1JFRCwgJmVicCkpCkBAIC02MjMsOSArNjIzLDkgQEAgZmZz
X3JlYWxsb2NibGtzX3VmczEoYXApCiAjaWZkZWYgSU5WQVJJQU5UUwogCQlpZiAoIWZmc19j
aGVja2JsayhpcCwKIAkJICAgZGJ0b2ZzYihmcywgYnVmbGlzdC0+YnNfY2hpbGRyZW5baV0t
PmJfYmxrbm8pLCBmcy0+ZnNfYnNpemUpKQotCQkJcGFuaWMoImZmc19yZWFsbG9jYmxrczog
dW5hbGxvY2F0ZWQgYmxvY2sgMiIpOworCQkJUEFOSUMoInVuYWxsb2NhdGVkIGJsb2NrIDIi
KTsKIAkJaWYgKGRidG9mc2IoZnMsIGJ1Zmxpc3QtPmJzX2NoaWxkcmVuW2ldLT5iX2Jsa25v
KSAhPSAqYmFwKQotCQkJcGFuaWMoImZmc19yZWFsbG9jYmxrczogYWxsb2MgbWlzbWF0Y2gi
KTsKKwkJCVBBTklDKCJhbGxvYyBtaXNtYXRjaCIpOwogI2VuZGlmCiAjaWZkZWYgREVCVUcK
IAkJaWYgKHBydHJlYWxsb2MpCkBAIC02ODksNyArNjg5LDcgQEAgZmZzX3JlYWxsb2NibGtz
X3VmczEoYXApCiAjaWZkZWYgSU5WQVJJQU5UUwogCQlpZiAoIWZmc19jaGVja2JsayhpcCwK
IAkJICAgZGJ0b2ZzYihmcywgYnVmbGlzdC0+YnNfY2hpbGRyZW5baV0tPmJfYmxrbm8pLCBm
cy0+ZnNfYnNpemUpKQotCQkJcGFuaWMoImZmc19yZWFsbG9jYmxrczogdW5hbGxvY2F0ZWQg
YmxvY2sgMyIpOworCQkJUEFOSUMoInVuYWxsb2NhdGVkIGJsb2NrIDMiKTsKICNlbmRpZgog
I2lmZGVmIERFQlVHCiAJCWlmIChwcnRyZWFsbG9jKQpAQCAtNzQ1LDE1ICs3NDUsMTUgQEAg
ZmZzX3JlYWxsb2NibGtzX3VmczIoYXApCiAJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQog
CQlpZiAoIWZmc19jaGVja2JsayhpcCwKIAkJICAgZGJ0b2ZzYihmcywgYnVmbGlzdC0+YnNf
Y2hpbGRyZW5baV0tPmJfYmxrbm8pLCBmcy0+ZnNfYnNpemUpKQotCQkJcGFuaWMoImZmc19y
ZWFsbG9jYmxrczogdW5hbGxvY2F0ZWQgYmxvY2sgMSIpOworCQkJUEFOSUMoInVuYWxsb2Nh
dGVkIGJsb2NrIDEiKTsKIAlmb3IgKGkgPSAxOyBpIDwgbGVuOyBpKyspCiAJCWlmIChidWZs
aXN0LT5ic19jaGlsZHJlbltpXS0+Yl9sYmxrbm8gIT0gc3RhcnRfbGJuICsgaSkKLQkJCXBh
bmljKCJmZnNfcmVhbGxvY2Jsa3M6IG5vbi1sb2dpY2FsIGNsdXN0ZXIiKTsKKwkJCVBBTklD
KCJub24tbG9naWNhbCBjbHVzdGVyIik7CiAJYmxrbm8gPSBidWZsaXN0LT5ic19jaGlsZHJl
blswXS0+Yl9ibGtubzsKIAlzc2l6ZSA9IGZzYnRvZGIoZnMsIGZzLT5mc19mcmFnKTsKIAlm
b3IgKGkgPSAxOyBpIDwgbGVuIC0gMTsgaSsrKQogCQlpZiAoYnVmbGlzdC0+YnNfY2hpbGRy
ZW5baV0tPmJfYmxrbm8gIT0gYmxrbm8gKyAoaSAqIHNzaXplKSkKLQkJCXBhbmljKCJmZnNf
cmVhbGxvY2Jsa3M6IG5vbi1waHlzaWNhbCBjbHVzdGVyICVkIiwgaSk7CisJCQlQQU5JQygi
bm9uLXBoeXNpY2FsIGNsdXN0ZXIgJWQiLCBpKTsKICNlbmRpZgogCS8qCiAJICogSWYgdGhl
IGNsdXN0ZXIgY3Jvc3NlcyB0aGUgYm91bmRhcnkgZm9yIHRoZSBmaXJzdCBpbmRpcmVjdApA
QCAtODAyLDcgKzgwMiw3IEBAIGZmc19yZWFsbG9jYmxrc191ZnMyKGFwKQogI2lmZGVmIElO
VkFSSUFOVFMKIAkJaWYgKHN0YXJ0X2x2bCA+IDAgJiYKIAkJICAgIHN0YXJ0X2FwW3N0YXJ0
X2x2bCAtIDFdLmluX2xibiA9PSBpZHAtPmluX2xibikKLQkJCXBhbmljKCJmZnNfcmVhbGxv
Y2Jsazogc3RhcnQgPT0gZW5kIik7CisJCQlQQU5JQygic3RhcnQgPT0gZW5kIik7CiAjZW5k
aWYKIAkJc3NpemUgPSBsZW4gLSAoaWRwLT5pbl9vZmYgKyAxKTsKIAkJaWYgKGJyZWFkKHZw
LCBpZHAtPmluX2xibiwgKGludClmcy0+ZnNfYnNpemUsIE5PQ1JFRCwgJmVicCkpCkBAIC04
NTIsOSArODUyLDkgQEAgZmZzX3JlYWxsb2NibGtzX3VmczIoYXApCiAjaWZkZWYgSU5WQVJJ
QU5UUwogCQlpZiAoIWZmc19jaGVja2JsayhpcCwKIAkJICAgZGJ0b2ZzYihmcywgYnVmbGlz
dC0+YnNfY2hpbGRyZW5baV0tPmJfYmxrbm8pLCBmcy0+ZnNfYnNpemUpKQotCQkJcGFuaWMo
ImZmc19yZWFsbG9jYmxrczogdW5hbGxvY2F0ZWQgYmxvY2sgMiIpOworCQkJUEFOSUMoInVu
YWxsb2NhdGVkIGJsb2NrIDIiKTsKIAkJaWYgKGRidG9mc2IoZnMsIGJ1Zmxpc3QtPmJzX2No
aWxkcmVuW2ldLT5iX2Jsa25vKSAhPSAqYmFwKQotCQkJcGFuaWMoImZmc19yZWFsbG9jYmxr
czogYWxsb2MgbWlzbWF0Y2giKTsKKwkJCVBBTklDKCJhbGxvYyBtaXNtYXRjaCIpOwogI2Vu
ZGlmCiAjaWZkZWYgREVCVUcKIAkJaWYgKHBydHJlYWxsb2MpCkBAIC05MTgsNyArOTE4LDcg
QEAgZmZzX3JlYWxsb2NibGtzX3VmczIoYXApCiAjaWZkZWYgSU5WQVJJQU5UUwogCQlpZiAo
IWZmc19jaGVja2JsayhpcCwKIAkJICAgZGJ0b2ZzYihmcywgYnVmbGlzdC0+YnNfY2hpbGRy
ZW5baV0tPmJfYmxrbm8pLCBmcy0+ZnNfYnNpemUpKQotCQkJcGFuaWMoImZmc19yZWFsbG9j
YmxrczogdW5hbGxvY2F0ZWQgYmxvY2sgMyIpOworCQkJUEFOSUMoInVuYWxsb2NhdGVkIGJs
b2NrIDMiKTsKICNlbmRpZgogI2lmZGVmIERFQlVHCiAJCWlmIChwcnRyZWFsbG9jKQpAQCAt
MTAyNiw3ICsxMDI2LDcgQEAgcmV0cnk6CiBkdXBfYWxsb2M6CiAJCXByaW50ZigibW9kZSA9
IDAlbywgaW51bSA9ICVsdSwgZnMgPSAlc1xuIiwKIAkJICAgIGlwLT5pX21vZGUsICh1X2xv
bmcpaXAtPmlfbnVtYmVyLCBmcy0+ZnNfZnNtbnQpOwotCQlwYW5pYygiZmZzX3ZhbGxvYzog
ZHVwIGFsbG9jIik7CisJCVBBTklDKCJkdXAgYWxsb2MiKTsKIAl9CiAJaWYgKERJUChpcCwg
aV9ibG9ja3MpICYmIChmcy0+ZnNfZmxhZ3MgJiBGU19VTkNMRUFOKSA9PSAwKSB7ICAvKiBY
WFggKi8KIAkJcHJpbnRmKCJmcmVlIGlub2RlICVzLyVsdSBoYWQgJWxkIGJsb2Nrc1xuIiwK
QEAgLTEzNjUsNyArMTM2NSw3IEBAIGZmc19oYXNoYWxsb2MoaXAsIGNnLCBwcmVmLCBzaXpl
LCByc2l6ZSwgYWxsb2NhdG9yKQogCW10eF9hc3NlcnQoVUZTX01UWChpcC0+aV91bXApLCBN
QV9PV05FRCk7CiAjaWZkZWYgSU5WQVJJQU5UUwogCWlmIChJVE9WKGlwKS0+dl9tb3VudC0+
bW50X2tlcm5fZmxhZyAmIE1OVEtfU1VTUEVOREVEKQotCQlwYW5pYygiZmZzX2hhc2hhbGxv
YzogYWxsb2NhdGlvbiBvbiBzdXNwZW5kZWQgZmlsZXN5c3RlbSIpOworCQlQQU5JQygiYWxs
b2NhdGlvbiBvbiBzdXNwZW5kZWQgZmlsZXN5c3RlbSIpOwogI2VuZGlmCiAJZnMgPSBpcC0+
aV9mczsKIAkvKgpAQCAtMTc2OSwxNSArMTc2OSwxNSBAQCBmZnNfY2x1c3RlcmFsbG9jKGlw
LCBjZywgYnByZWYsIGxlbiwgdW51c2VkKQogCWJsa3NmcmVlID0gY2dfYmxrc2ZyZWUoY2dw
KTsKIAlmb3IgKGkgPSAxOyBpIDw9IGxlbjsgaSsrKQogCQlpZiAoIWZmc19pc2Jsb2NrKGZz
LCBibGtzZnJlZSwgZ290IC0gcnVuICsgaSkpCi0JCQlwYW5pYygiZmZzX2NsdXN0ZXJhbGxv
YzogbWFwIG1pc21hdGNoIik7CisJCQlQQU5JQygibWFwIG1pc21hdGNoIik7CiAJYm5vID0g
Y2diYXNlKGZzLCBjZykgKyBibGtzdG9mcmFncyhmcywgZ290IC0gcnVuICsgMSk7CiAJaWYg
KGR0b2coZnMsIGJubykgIT0gY2cpCi0JCXBhbmljKCJmZnNfY2x1c3RlcmFsbG9jOiBhbGxv
Y2F0ZWQgb3V0IG9mIGdyb3VwIik7CisJCVBBTklDKCJhbGxvY2F0ZWQgb3V0IG9mIGdyb3Vw
Iik7CiAJbGVuID0gYmxrc3RvZnJhZ3MoZnMsIGxlbik7CiAJVUZTX0xPQ0sodW1wKTsKIAlm
b3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IGZzLT5mc19mcmFnKQogCQlpZiAoZmZzX2FsbG9j
Y2dibGsoaXAsIGJwLCBibm8gKyBpLCBmcy0+ZnNfYnNpemUpICE9IGJubyArIGkpCi0JCQlw
YW5pYygiZmZzX2NsdXN0ZXJhbGxvYzogbG9zdCBibG9jayIpOworCQkJUEFOSUMoImxvc3Qg
YmxvY2siKTsKIAlBQ1RJVkVDTEVBUihmcywgY2cpOwogCVVGU19VTkxPQ0sodW1wKTsKIAli
ZHdyaXRlKGJwKTsKQEAgLTE4NTEsNyArMTg1MSw3IEBAIGZmc19ub2RlYWxsb2NjZyhpcCwg
Y2csIGlwcmVmLCBtb2RlLCB1bnVzZWQpCiAJCWlmIChsb2MgPT0gTlVMTCkgewogCQkJcHJp
bnRmKCJjZyA9ICVkLCBpcm90b3IgPSAlbGQsIGZzID0gJXNcbiIsCiAJCQkgICAgY2csIChs
b25nKWNncC0+Y2dfaXJvdG9yLCBmcy0+ZnNfZnNtbnQpOwotCQkJcGFuaWMoImZmc19ub2Rl
YWxsb2NjZzogbWFwIGNvcnJ1cHRlZCIpOworCQkJUEFOSUMoIm1hcCBjb3JydXB0ZWQiKTsK
IAkJCS8qIE5PVFJFQUNIRUQgKi8KIAkJfQogCX0KQEAgLTE5NDEsNyArMTk0MSw3IEBAIGZm
c19ibGtmcmVlX2NnKHVtcCwgZnMsIGRldnZwLCBibm8sIHNpemUsIGludW0sIGRlcGhkKQog
CQlwcmludGYoImRldj0lcywgYm5vID0gJWpkLCBic2l6ZSA9ICVsZCwgc2l6ZSA9ICVsZCwg
ZnMgPSAlc1xuIiwKIAkJICAgIGRldnRvbmFtZShkZXYpLCAoaW50bWF4X3QpYm5vLCAobG9u
Zylmcy0+ZnNfYnNpemUsCiAJCSAgICBzaXplLCBmcy0+ZnNfZnNtbnQpOwotCQlwYW5pYygi
ZmZzX2Jsa2ZyZWVfY2c6IGJhZCBzaXplIik7CisJCVBBTklDKCJiYWQgc2l6ZSIpOwogCX0K
ICNlbmRpZgogCWlmICgodV9pbnQpYm5vID49IGZzLT5mc19zaXplKSB7CkBAIC0xOTc1LDcg
KzE5NzUsNyBAQCBmZnNfYmxrZnJlZV9jZyh1bXAsIGZzLCBkZXZ2cCwgYm5vLCBzaXplLCBp
bnVtLCBkZXBoZCkKIAkJCX0KIAkJCXByaW50ZigiZGV2ID0gJXMsIGJsb2NrID0gJWpkLCBm
cyA9ICVzXG4iLAogCQkJICAgIGRldnRvbmFtZShkZXYpLCAoaW50bWF4X3QpYm5vLCBmcy0+
ZnNfZnNtbnQpOwotCQkJcGFuaWMoImZmc19ibGtmcmVlX2NnOiBmcmVlaW5nIGZyZWUgYmxv
Y2siKTsKKwkJCVBBTklDKCJmcmVlaW5nIGZyZWUgYmxvY2siKTsKIAkJfQogCQlmZnNfc2V0
YmxvY2soZnMsIGJsa3NmcmVlLCBmcmFnbm8pOwogCQlmZnNfY2x1c3RlcmFjY3QoZnMsIGNn
cCwgZnJhZ25vLCAxKTsKQEAgLTE5OTgsNyArMTk5OCw3IEBAIGZmc19ibGtmcmVlX2NnKHVt
cCwgZnMsIGRldnZwLCBibm8sIHNpemUsIGludW0sIGRlcGhkKQogCQkJCXByaW50ZigiZGV2
ID0gJXMsIGJsb2NrID0gJWpkLCBmcyA9ICVzXG4iLAogCQkJCSAgICBkZXZ0b25hbWUoZGV2
KSwgKGludG1heF90KShibm8gKyBpKSwKIAkJCQkgICAgZnMtPmZzX2ZzbW50KTsKLQkJCQlw
YW5pYygiZmZzX2Jsa2ZyZWVfY2c6IGZyZWVpbmcgZnJlZSBmcmFnIik7CisJCQkJUEFOSUMo
ImZyZWVpbmcgZnJlZSBmcmFnIik7CiAJCQl9CiAJCQlzZXRiaXQoYmxrc2ZyZWUsIGNnYm5v
ICsgaSk7CiAJCX0KQEAgLTIxNjEsMTcgKzIxNjEsMTcgQEAgZmZzX2NoZWNrYmxrKGlwLCBi
bm8sIHNpemUpCiAJaWYgKCh1X2ludClzaXplID4gZnMtPmZzX2JzaXplIHx8IGZyYWdvZmYo
ZnMsIHNpemUpICE9IDApIHsKIAkJcHJpbnRmKCJic2l6ZSA9ICVsZCwgc2l6ZSA9ICVsZCwg
ZnMgPSAlc1xuIiwKIAkJICAgIChsb25nKWZzLT5mc19ic2l6ZSwgc2l6ZSwgZnMtPmZzX2Zz
bW50KTsKLQkJcGFuaWMoImZmc19jaGVja2JsazogYmFkIHNpemUiKTsKKwkJUEFOSUMoImJh
ZCBzaXplIik7CiAJfQogCWlmICgodV9pbnQpYm5vID49IGZzLT5mc19zaXplKQotCQlwYW5p
YygiZmZzX2NoZWNrYmxrOiBiYWQgYmxvY2sgJWpkIiwgKGludG1heF90KWJubyk7CisJCVBB
TklDKCJiYWQgYmxvY2sgJWpkIiwgKGludG1heF90KWJubyk7CiAJZXJyb3IgPSBicmVhZChp
cC0+aV9kZXZ2cCwgZnNidG9kYihmcywgY2d0b2QoZnMsIGR0b2coZnMsIGJubykpKSwKIAkJ
KGludClmcy0+ZnNfY2dzaXplLCBOT0NSRUQsICZicCk7CiAJaWYgKGVycm9yKQotCQlwYW5p
YygiZmZzX2NoZWNrYmxrOiBjZyBicmVhZCBmYWlsZWQiKTsKKwkJUEFOSUMoImNnIGJyZWFk
IGZhaWxlZCIpOwogCWNncCA9IChzdHJ1Y3QgY2cgKilicC0+Yl9kYXRhOwogCWlmICghY2df
Y2hrbWFnaWMoY2dwKSkKLQkJcGFuaWMoImZmc19jaGVja2JsazogY2cgbWFnaWMgbWlzbWF0
Y2giKTsKKwkJUEFOSUMoImNnIG1hZ2ljIG1pc21hdGNoIik7CiAJYnAtPmJfeGZsYWdzIHw9
IEJYX0JLR1JEV1JJVEU7CiAJYmxrc2ZyZWUgPSBjZ19ibGtzZnJlZShjZ3ApOwogCWNnYm5v
ID0gZHRvZ2QoZnMsIGJubyk7CkBAIC0yMTgzLDcgKzIxODMsNyBAQCBmZnNfY2hlY2tibGso
aXAsIGJubywgc2l6ZSkKIAkJCWlmIChpc3NldChibGtzZnJlZSwgY2dibm8gKyBpKSkKIAkJ
CQlmcmVlKys7CiAJCWlmIChmcmVlICE9IDAgJiYgZnJlZSAhPSBmcmFncykKLQkJCXBhbmlj
KCJmZnNfY2hlY2tibGs6IHBhcnRpYWxseSBmcmVlIGZyYWdtZW50Iik7CisJCQlQQU5JQygi
cGFydGlhbGx5IGZyZWUgZnJhZ21lbnQiKTsKIAl9CiAJYnJlbHNlKGJwKTsKIAlyZXR1cm4g
KCFmcmVlKTsKQEAgLTIyNDIsNyArMjI0Miw3IEBAIGZmc19mcmVlZmlsZSh1bXAsIGZzLCBk
ZXZ2cCwgaW5vLCBtb2RlLCB3a2hkKQogCQljZ2JubyA9IGZzYnRvZGIoZnMsIGNndG9kKGZz
LCBjZykpOwogCX0KIAlpZiAoaW5vID49IGZzLT5mc19pcGcgKiBmcy0+ZnNfbmNnKQotCQlw
YW5pYygiZmZzX2ZyZWVmaWxlOiByYW5nZTogZGV2ID0gJXMsIGlubyA9ICVqdSwgZnMgPSAl
cyIsCisJCVBBTklDKCJyYW5nZTogZGV2ID0gJXMsIGlubyA9ICVqdSwgZnMgPSAlcyIsCiAJ
CSAgICBkZXZ0b25hbWUoZGV2KSwgKHVpbnRtYXhfdClpbm8sIGZzLT5mc19mc21udCk7CiAJ
aWYgKChlcnJvciA9IGJyZWFkKGRldnZwLCBjZ2JubywgKGludClmcy0+ZnNfY2dzaXplLCBO
T0NSRUQsICZicCkpKSB7CiAJCWJyZWxzZShicCk7CkBAIC0yMjYxLDcgKzIyNjEsNyBAQCBm
ZnNfZnJlZWZpbGUodW1wLCBmcywgZGV2dnAsIGlubywgbW9kZSwgd2toZCkKIAkJcHJpbnRm
KCJkZXYgPSAlcywgaW5vID0gJWp1LCBmcyA9ICVzXG4iLCBkZXZ0b25hbWUoZGV2KSwKIAkJ
ICAgICh1aW50bWF4X3QpKGlubyArIGNnICogZnMtPmZzX2lwZyksIGZzLT5mc19mc21udCk7
CiAJCWlmIChmcy0+ZnNfcm9ubHkgPT0gMCkKLQkJCXBhbmljKCJmZnNfZnJlZWZpbGU6IGZy
ZWVpbmcgZnJlZSBpbm9kZSIpOworCQkJUEFOSUMoImZyZWVpbmcgZnJlZSBpbm9kZSIpOwog
CX0KIAljbHJiaXQoaW5vc3VzZWQsIGlubyk7CiAJaWYgKGlubyA8IGNncC0+Y2dfaXJvdG9y
KQpAQCAtMjM2Nyw3ICsyMzY3LDcgQEAgZmZzX21hcHNlYXJjaChmcywgY2dwLCBicHJlZiwg
YWxsb2NzaXopCiAJCWlmIChsb2MgPT0gMCkgewogCQkJcHJpbnRmKCJzdGFydCA9ICVkLCBs
ZW4gPSAlZCwgZnMgPSAlc1xuIiwKIAkJCSAgICBzdGFydCwgbGVuLCBmcy0+ZnNfZnNtbnQp
OwotCQkJcGFuaWMoImZmc19hbGxvY2NnOiBtYXAgY29ycnVwdGVkIik7CisJCQlQQU5JQygi
bWFwIGNvcnJ1cHRlZCIpOwogCQkJLyogTk9UUkVBQ0hFRCAqLwogCQl9CiAJfQpAQCAtMjM5
MCw3ICsyMzkwLDcgQEAgZmZzX21hcHNlYXJjaChmcywgY2dwLCBicHJlZiwgYWxsb2NzaXop
CiAJCX0KIAl9CiAJcHJpbnRmKCJibm8gPSAlbHUsIGZzID0gJXNcbiIsICh1X2xvbmcpYm5v
LCBmcy0+ZnNfZnNtbnQpOwotCXBhbmljKCJmZnNfYWxsb2NjZzogYmxvY2sgbm90IGluIG1h
cCIpOworCVBBTklDKCJibG9jayBub3QgaW4gbWFwIik7CiAJcmV0dXJuICgtMSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL3N5cy91ZnMvZmZzL2Zmc19iYWxsb2MuYyBiL3N5cy91ZnMvZmZzL2Zm
c19iYWxsb2MuYwppbmRleCAwZTI5YmU4N2YuLjg3ODJjOTcgMTAwNjQ0Ci0tLSBhL3N5cy91
ZnMvZmZzL2Zmc19iYWxsb2MuYworKysgYi9zeXMvdWZzL2Zmcy9mZnNfYmFsbG9jLmMKQEAg
LTExNyw3ICsxMTcsNyBAQCBmZnNfYmFsbG9jX3VmczEoc3RydWN0IHZub2RlICp2cCwgb2Zm
X3Qgc3RhcnRvZmZzZXQsIGludCBzaXplLAogCXNpemUgPSBibGtvZmYoZnMsIHN0YXJ0b2Zm
c2V0KSArIHNpemU7CiAJcmVjbGFpbWVkID0gMDsKIAlpZiAoc2l6ZSA+IGZzLT5mc19ic2l6
ZSkKLQkJcGFuaWMoImZmc19iYWxsb2NfdWZzMTogYmxrIHRvbyBiaWciKTsKKwkJUEFOSUMo
ImJsayB0b28gYmlnIik7CiAJKmJwcCA9IE5VTEw7CiAJaWYgKGZsYWdzICYgSU9fRVhUKQog
CQlyZXR1cm4gKEVPUE5PVFNVUFApOwpAQCAtMTYyLDcgKzE2Miw3IEBAIGZmc19iYWxsb2Nf
dWZzMShzdHJ1Y3Qgdm5vZGUgKnZwLCBvZmZfdCBzdGFydG9mZnNldCwgaW50IHNpemUsCiAJ
ICovCiAJaWYgKGxibiA8IE5EQUREUikgewogCQlpZiAoZmxhZ3MgJiBCQV9NRVRBT05MWSkK
LQkJCXBhbmljKCJmZnNfYmFsbG9jX3VmczE6IEJBX01FVEFPTkxZIGZvciBkaXJlY3QgYmxv
Y2siKTsKKwkJCVBBTklDKCJCQV9NRVRBT05MWSBmb3IgZGlyZWN0IGJsb2NrIik7CiAJCW5i
ID0gZHAtPmRpX2RiW2xibl07CiAJCWlmIChuYiAhPSAwICYmIGlwLT5pX3NpemUgPj0gc21h
bGxsYmxrdG9zaXplKGZzLCBsYm4gKyAxKSkgewogCQkJZXJyb3IgPSBicmVhZCh2cCwgbGJu
LCBmcy0+ZnNfYnNpemUsIE5PQ1JFRCwgJmJwKTsKQEAgLTIzMiw3ICsyMzIsNyBAQCBmZnNf
YmFsbG9jX3VmczEoc3RydWN0IHZub2RlICp2cCwgb2ZmX3Qgc3RhcnRvZmZzZXQsIGludCBz
aXplLAogCQlyZXR1cm4oZXJyb3IpOwogI2lmZGVmIElOVkFSSUFOVFMKIAlpZiAobnVtIDwg
MSkKLQkJcGFuaWMgKCJmZnNfYmFsbG9jX3VmczE6IHVmc19nZXRsYm5zIHJldHVybmVkIGlu
ZGlyZWN0IGJsb2NrIik7CisJCVBBTklDKCJ1ZnNfZ2V0bGJucyByZXR1cm5lZCBpbmRpcmVj
dCBibG9jayIpOwogI2VuZGlmCiAJc2F2ZWRfaW5iZGZsdXNoID0gY3VydGhyZWFkX3BmbGFn
c19zZXQoVERQX0lOQkRGTFVTSCk7CiAJLyoKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBmYWlsOgog
CQlyID0gYnJlYWQodnAsIGluZGlyc1t1bndpbmRpZHhdLmluX2xibiwgCiAJCSAgICAoaW50
KWZzLT5mc19ic2l6ZSwgTk9DUkVELCAmYnApOwogCQlpZiAocikgewotCQkJcGFuaWMoIkNv
dWxkIG5vdCB1bndpbmQgaW5kaXJlY3QgYmxvY2ssIGVycm9yICVkIiwgcik7CisJCQlQQU5J
QygiQ291bGQgbm90IHVud2luZCBpbmRpcmVjdCBibG9jaywgZXJyb3IgJWQiLCByKTsKIAkJ
CWJyZWxzZShicCk7CiAJCX0gZWxzZSB7CiAJCQliYXAgPSAodWZzMV9kYWRkcl90ICopYnAt
PmJfZGF0YTsKQEAgLTU0OSw3ICs1NDksNyBAQCBmZnNfYmFsbG9jX3VmczIoc3RydWN0IHZu
b2RlICp2cCwgb2ZmX3Qgc3RhcnRvZmZzZXQsIGludCBzaXplLAogCXNpemUgPSBibGtvZmYo
ZnMsIHN0YXJ0b2Zmc2V0KSArIHNpemU7CiAJcmVjbGFpbWVkID0gMDsKIAlpZiAoc2l6ZSA+
IGZzLT5mc19ic2l6ZSkKLQkJcGFuaWMoImZmc19iYWxsb2NfdWZzMjogYmxrIHRvbyBiaWci
KTsKKwkJUEFOSUMoImJsayB0b28gYmlnIik7CiAJKmJwcCA9IE5VTEw7CiAJaWYgKGxibiA8
IDApCiAJCXJldHVybiAoRUZCSUcpOwpAQCAtNjAwLDcgKzYwMCw3IEBAIGZmc19iYWxsb2Nf
dWZzMihzdHJ1Y3Qgdm5vZGUgKnZwLCBvZmZfdCBzdGFydG9mZnNldCwgaW50IHNpemUsCiAJ
CSAqIEFsbCBibG9ja3MgYXJlIGRpcmVjdCBibG9ja3MKIAkJICovCiAJCWlmIChmbGFncyAm
IEJBX01FVEFPTkxZKQotCQkJcGFuaWMoImZmc19iYWxsb2NfdWZzMjogQkFfTUVUQU9OTFkg
Zm9yIGV4dCBibG9jayIpOworCQkJUEFOSUMoIkJBX01FVEFPTkxZIGZvciBleHQgYmxvY2si
KTsKIAkJbmIgPSBkcC0+ZGlfZXh0YltsYm5dOwogCQlpZiAobmIgIT0gMCAmJiBkcC0+ZGlf
ZXh0c2l6ZSA+PSBzbWFsbGxibGt0b3NpemUoZnMsIGxibiArIDEpKSB7CiAJCQllcnJvciA9
IGJyZWFkKHZwLCAtMSAtIGxibiwgZnMtPmZzX2JzaXplLCBOT0NSRUQsICZicCk7CkBAIC03
MDQsNyArNzA0LDcgQEAgZmZzX2JhbGxvY191ZnMyKHN0cnVjdCB2bm9kZSAqdnAsIG9mZl90
IHN0YXJ0b2Zmc2V0LCBpbnQgc2l6ZSwKIAkgKi8KIAlpZiAobGJuIDwgTkRBRERSKSB7CiAJ
CWlmIChmbGFncyAmIEJBX01FVEFPTkxZKQotCQkJcGFuaWMoImZmc19iYWxsb2NfdWZzMjog
QkFfTUVUQU9OTFkgZm9yIGRpcmVjdCBibG9jayIpOworCQkJUEFOSUMoIkJBX01FVEFPTkxZ
IGZvciBkaXJlY3QgYmxvY2siKTsKIAkJbmIgPSBkcC0+ZGlfZGJbbGJuXTsKIAkJaWYgKG5i
ICE9IDAgJiYgaXAtPmlfc2l6ZSA+PSBzbWFsbGxibGt0b3NpemUoZnMsIGxibiArIDEpKSB7
CiAJCQllcnJvciA9IGJyZWFkKHZwLCBsYm4sIGZzLT5mc19ic2l6ZSwgTk9DUkVELCAmYnAp
OwpAQCAtNzc0LDcgKzc3NCw3IEBAIGZmc19iYWxsb2NfdWZzMihzdHJ1Y3Qgdm5vZGUgKnZw
LCBvZmZfdCBzdGFydG9mZnNldCwgaW50IHNpemUsCiAJCXJldHVybihlcnJvcik7CiAjaWZk
ZWYgSU5WQVJJQU5UUwogCWlmIChudW0gPCAxKQotCQlwYW5pYyAoImZmc19iYWxsb2NfdWZz
MjogdWZzX2dldGxibnMgcmV0dXJuZWQgaW5kaXJlY3QgYmxvY2siKTsKKwkJUEFOSUMoInVm
c19nZXRsYm5zIHJldHVybmVkIGluZGlyZWN0IGJsb2NrIik7CiAjZW5kaWYKIAlzYXZlZF9p
bmJkZmx1c2ggPSBjdXJ0aHJlYWRfcGZsYWdzX3NldChURFBfSU5CREZMVVNIKTsKIAkvKgpA
QCAtMTAyNSw3ICsxMDI1LDcgQEAgZmFpbDoKIAkJciA9IGJyZWFkKHZwLCBpbmRpcnNbdW53
aW5kaWR4XS5pbl9sYm4sIAogCQkgICAgKGludClmcy0+ZnNfYnNpemUsIE5PQ1JFRCwgJmJw
KTsKIAkJaWYgKHIpIHsKLQkJCXBhbmljKCJDb3VsZCBub3QgdW53aW5kIGluZGlyZWN0IGJs
b2NrLCBlcnJvciAlZCIsIHIpOworCQkJUEFOSUMoIkNvdWxkIG5vdCB1bndpbmQgaW5kaXJl
Y3QgYmxvY2ssIGVycm9yICVkIiwgcik7CiAJCQlicmVsc2UoYnApOwogCQl9IGVsc2Ugewog
CQkJYmFwID0gKHVmczJfZGFkZHJfdCAqKWJwLT5iX2RhdGE7CmRpZmYgLS1naXQgYS9zeXMv
dWZzL2Zmcy9mZnNfaW5vZGUuYyBiL3N5cy91ZnMvZmZzL2Zmc19pbm9kZS5jCmluZGV4IGY4
NTg0ZDUuLjIwZDUxOGQgMTAwNjQ0Ci0tLSBhL3N5cy91ZnMvZmZzL2Zmc19pbm9kZS5jCisr
KyBiL3N5cy91ZnMvZmZzL2Zmc19pbm9kZS5jCkBAIC0xNDEsNyArMTQxLDcgQEAgbG9vcDoK
IAlpZiAoRE9JTkdTT0ZUREVQKHZwKSkKIAkJc29mdGRlcF91cGRhdGVfaW5vZGVibG9jayhp
cCwgYnAsIHdhaXRmb3IpOwogCWVsc2UgaWYgKGlwLT5pX2VmZm5saW5rICE9IGlwLT5pX25s
aW5rKQotCQlwYW5pYygiZmZzX3VwZGF0ZTogYmFkIGxpbmsgY250Iik7CisJCVBBTklDKCJi
YWQgbGluayBjbnQiKTsKIAlpZiAoaXAtPmlfdW1wLT51bV9mc3R5cGUgPT0gVUZTMSkKIAkJ
Kigoc3RydWN0IHVmczFfZGlub2RlICopYnAtPmJfZGF0YSArCiAJCSAgICBpbm9fdG9fZnNi
byhmcywgaXAtPmlfbnVtYmVyKSkgPSAqaXAtPmlfZGluMTsKQEAgLTIzNiw3ICsyMzYsNyBA
QCBmZnNfdHJ1bmNhdGUodnAsIGxlbmd0aCwgZmxhZ3MsIGNyZWQpCiAJfQogCWlmICgoZmxh
Z3MgJiBJT19FWFQpICYmIGV4dGJsb2NrcyA+IDApIHsKIAkJaWYgKGxlbmd0aCAhPSAwKQot
CQkJcGFuaWMoImZmc190cnVuY2F0ZTogcGFydGlhbCB0cnVuYyBvZiBleHRkYXRhIik7CisJ
CQlQQU5JQygicGFydGlhbCB0cnVuYyBvZiBleHRkYXRhIik7CiAJCWlmIChzb2Z0ZGVwdHJ1
bmMgfHwgam91cm5hbHRydW5jKSB7CiAJCQlpZiAoKGZsYWdzICYgSU9fTk9STUFMKSA9PSAw
KQogCQkJCWdvdG8gZXh0Y2xlYW47CkBAIC0yNzYsNyArMjc2LDcgQEAgZmZzX3RydW5jYXRl
KHZwLCBsZW5ndGgsIGZsYWdzLCBjcmVkKQogCSAgICAgZGF0YWJsb2NrcyA9PSAwKSkgewog
I2lmZGVmIElOVkFSSUFOVFMKIAkJaWYgKGxlbmd0aCAhPSAwKQotCQkJcGFuaWMoImZmc190
cnVuY2F0ZTogcGFydGlhbCB0cnVuY2F0ZSBvZiBzeW1saW5rIik7CisJCQlQQU5JQygicGFy
dGlhbCB0cnVuY2F0ZSBvZiBzeW1saW5rIik7CiAjZW5kaWYKIAkJYnplcm8oU0hPUlRMSU5L
KGlwKSwgKHVfaW50KWlwLT5pX3NpemUpOwogCQlpcC0+aV9zaXplID0gMDsKQEAgLTI5Myw3
ICsyOTMsNyBAQCBmZnNfdHJ1bmNhdGUodnAsIGxlbmd0aCwgZmxhZ3MsIGNyZWQpCiAJCXJl
dHVybiAoZmZzX3VwZGF0ZSh2cCwgMCkpOwogCX0KIAlpZiAoZnMtPmZzX3Jvbmx5KQotCQlw
YW5pYygiZmZzX3RydW5jYXRlOiByZWFkLW9ubHkgZmlsZXN5c3RlbSIpOworCQlQQU5JQygi
cmVhZC1vbmx5IGZpbGVzeXN0ZW0iKTsKIAlpZiAoSVNfU05BUFNIT1QoaXApKQogCQlmZnNf
c25hcHJlbW92ZSh2cCk7CiAJdnAtPnZfbGFzdGEgPSB2cC0+dl9jbGVuID0gdnAtPnZfY3N0
YXJ0ID0gdnAtPnZfbGFzdHcgPSAwOwpAQCAtNTEzLDcgKzUxMyw3IEBAIGZmc190cnVuY2F0
ZSh2cCwgbGVuZ3RoLCBmbGFncywgY3JlZCkKIAkJRElQX1NFVChpcCwgaV9zaXplLCBsZW5n
dGgpOwogCQluZXdzcGFjZSA9IGJsa3NpemUoZnMsIGlwLCBsYXN0YmxvY2spOwogCQlpZiAo
bmV3c3BhY2UgPT0gMCkKLQkJCXBhbmljKCJmZnNfdHJ1bmNhdGU6IG5ld3NwYWNlIik7CisJ
CQlQQU5JQygibmV3c3BhY2UiKTsKIAkJaWYgKG9sZHNwYWNlIC0gbmV3c3BhY2UgPiAwKSB7
CiAJCQkvKgogCQkJICogQmxvY2sgbnVtYmVyIG9mIHNwYWNlIHRvIGJlIGZyZWUnZCBpcwpA
QCAtNTMwLDE1ICs1MzAsMTUgQEAgZG9uZToKICNpZmRlZiBJTlZBUklBTlRTCiAJZm9yIChs
ZXZlbCA9IFNJTkdMRTsgbGV2ZWwgPD0gVFJJUExFOyBsZXZlbCsrKQogCQlpZiAobmV3Ymxr
c1tOREFERFIgKyBsZXZlbF0gIT0gRElQKGlwLCBpX2liW2xldmVsXSkpCi0JCQlwYW5pYygi
ZmZzX3RydW5jYXRlMSIpOworCQkJUEFOSUMoIjEiKTsKIAlmb3IgKGkgPSAwOyBpIDwgTkRB
RERSOyBpKyspCiAJCWlmIChuZXdibGtzW2ldICE9IERJUChpcCwgaV9kYltpXSkpCi0JCQlw
YW5pYygiZmZzX3RydW5jYXRlMiIpOworCQkJUEFOSUMoIjIiKTsKIAlCT19MT0NLKGJvKTsK
IAlpZiAobGVuZ3RoID09IDAgJiYKIAkgICAgKGZzLT5mc19tYWdpYyAhPSBGU19VRlMyX01B
R0lDIHx8IGlwLT5pX2RpbjItPmRpX2V4dHNpemUgPT0gMCkgJiYKIAkgICAgKGJvLT5ib19k
aXJ0eS5idl9jbnQgPiAwIHx8IGJvLT5ib19jbGVhbi5idl9jbnQgPiAwKSkKLQkJcGFuaWMo
ImZmc190cnVuY2F0ZTMiKTsKKwkJUEFOSUMoIjMiKTsKIAlCT19VTkxPQ0soYm8pOwogI2Vu
ZGlmIC8qIElOVkFSSUFOVFMgKi8KIAkvKgpAQCAtNjE2LDcgKzYxNiw3IEBAIGZmc19pbmRp
cnRydW5jKGlwLCBsYm4sIGRibiwgbGFzdGJuLCBsZXZlbCwgY291bnRwKQogCQlicC0+Yl9m
bGFncyAmPSB+Ql9JTlZBTDsKIAkJYnAtPmJfaW9mbGFncyAmPSB+QklPX0VSUk9SOwogCQlp
ZiAoYnAtPmJfYmNvdW50ID4gYnAtPmJfYnVmc2l6ZSkKLQkJCXBhbmljKCJmZnNfaW5kaXJ0
cnVuYzogYmFkIGJ1ZmZlciBzaXplIik7CisJCQlQQU5JQygiYmFkIGJ1ZmZlciBzaXplIik7
CiAJCWJwLT5iX2Jsa25vID0gZGJuOwogCQl2ZnNfYnVzeV9wYWdlcyhicCwgMCk7CiAJCWJw
LT5iX2lvb2Zmc2V0ID0gZGJ0b2IoYnAtPmJfYmxrbm8pOwpkaWZmIC0tZ2l0IGEvc3lzL3Vm
cy9mZnMvZmZzX3Jhd3JlYWQuYyBiL3N5cy91ZnMvZmZzL2Zmc19yYXdyZWFkLmMKaW5kZXgg
ZjhlM2UwMC4uOGVlMTkzNSAxMDA2NDQKLS0tIGEvc3lzL3Vmcy9mZnMvZmZzX3Jhd3JlYWQu
YworKysgYi9zeXMvdWZzL2Zmcy9mZnNfcmF3cmVhZC5jCkBAIC0xNzEsNyArMTcxLDcgQEAg
ZmZzX3Jhd3JlYWRfc3luYyhzdHJ1Y3Qgdm5vZGUgKnZwKQogCQkJfQogCQkJQk9fTE9DSyhi
byk7CiAJCQlpZiAoYm8tPmJvX251bW91dHB1dCA+IDAgfHwgYm8tPmJvX2RpcnR5LmJ2X2Nu
dCA+IDApCi0JCQkJcGFuaWMoImZmc19yYXdyZWFkX3N5bmM6IGRpcnR5IGJ1ZnMiKTsKKwkJ
CQlQQU5JQygiZGlydHkgYnVmcyIpOwogCQl9CiAJCUJPX1VOTE9DSyhibyk7CiAJCWlmICh1
cGdyYWRlZCAhPSAwKQpkaWZmIC0tZ2l0IGEvc3lzL3Vmcy9mZnMvZmZzX3NuYXBzaG90LmMg
Yi9zeXMvdWZzL2Zmcy9mZnNfc25hcHNob3QuYwppbmRleCAwYzY1M2MyLi5kZGI1YWZkIDEw
MDY0NAotLS0gYS9zeXMvdWZzL2Zmcy9mZnNfc25hcHNob3QuYworKysgYi9zeXMvdWZzL2Zm
cy9mZnNfc25hcHNob3QuYwpAQCAtMjc5LDcgKzI3OSw3IEBAIHJlc3RhcnQ6CiAJaWYgKFZP
UF9HRVRXUklURU1PVU5UKG5kLm5pX2R2cCwgJndydG1wKSkKIAkJd3J0bXAgPSBOVUxMOwog
CWlmICh3cnRtcCAhPSBtcCkKLQkJcGFuaWMoImZmc19zbmFwc2hvdDogbW91bnQgbWlzbWF0
Y2giKTsKKwkJUEFOSUMoIm1vdW50IG1pc21hdGNoIik7CiAJdmZzX3JlbCh3cnRtcCk7CiAJ
aWYgKHZuX3N0YXJ0X3dyaXRlKE5VTEwsICZ3cnRtcCwgVl9OT1dBSVQpICE9IDApIHsKIAkJ
TkRGUkVFKCZuZCwgTkRGX09OTFlfUE5CVUYpOwpAQCAtNjYyLDcgKzY2Miw3IEBAIGxvb3A6
CiAJCXNuYXBibGtsaXN0WzBdID0gYmxrcCAtIHNuYXBibGtsaXN0OwogCQlWSV9MT0NLKGRl
dnZwKTsKIAkJaWYgKHNuLT5zbl9ibGtsaXN0ICE9IE5VTEwpCi0JCQlwYW5pYygiZmZzX3Nu
YXBzaG90OiBub24tZW1wdHkgbGlzdCIpOworCQkJUEFOSUMoIm5vbi1lbXB0eSBsaXN0Iik7
CiAJCXNuLT5zbl9ibGtsaXN0ID0gc25hcGJsa2xpc3Q7CiAJCXNuLT5zbl9saXN0c2l6ZSA9
IGJsa3AgLSBzbmFwYmxrbGlzdDsKIAkJVklfVU5MT0NLKGRldnZwKTsKQEAgLTY3NCw4ICs2
NzQsNyBAQCBsb29wOgogCVZJX0xPQ0soZGV2dnApOwogCWZzLT5mc19zbmFwaW51bVtzbmFw
bG9jXSA9IGlwLT5pX251bWJlcjsKIAlpZiAoaXAtPmlfbmV4dHNuYXAudHFlX3ByZXYgIT0g
MCkKLQkJcGFuaWMoImZmc19zbmFwc2hvdDogJWp1IGFscmVhZHkgb24gbGlzdCIsCi0JCSAg
ICAodWludG1heF90KWlwLT5pX251bWJlcik7CisJCVBBTklDKCIlanUgYWxyZWFkeSBvbiBs
aXN0IiwgKHVpbnRtYXhfdClpcC0+aV9udW1iZXIpOwogCVRBSUxRX0lOU0VSVF9UQUlMKCZz
bi0+c25faGVhZCwgaXAsIGlfbmV4dHNuYXApOwogCWRldnZwLT52X3ZmbGFnIHw9IFZWX0NP
UFlPTldSSVRFOwogCVZJX1VOTE9DSyhkZXZ2cCk7CkBAIC03NDUsNyArNzQ0LDcgQEAgb3V0
MToKIAkJZ290byBkb25lOwogCX0KIAlpZiAoc25hcGxpc3RzaXplIDwgaXAtPmlfc25hcGJs
a2xpc3QgLSBzbmFwYmxrbGlzdCkKLQkJcGFuaWMoImZmc19zbmFwc2hvdDogbGlzdCB0b28g
c21hbGwiKTsKKwkJUEFOSUMoImxpc3QgdG9vIHNtYWxsIik7CiAJc25hcGxpc3RzaXplID0g
aXAtPmlfc25hcGJsa2xpc3QgLSBzbmFwYmxrbGlzdDsKIAlzbmFwYmxrbGlzdFswXSA9IHNu
YXBsaXN0c2l6ZTsKIAlpcC0+aV9zbmFwYmxrbGlzdCA9IDA7CkBAIC05MjgsNyArOTI3LDcg
QEAgY2dhY2NvdW50KGNnLCB2cCwgbmJwLCBwYXNzbm8pCiAJCQllbHNlIGlmIChwYXNzbm8g
PT0gMiAmJiBESVAoaXAsIGlfZGJbbG9jXSk9PSBCTEtfTk9DT1BZKQogCQkJCURJUF9TRVQo
aXAsIGlfZGJbbG9jXSwgMCk7CiAJCQllbHNlIGlmIChwYXNzbm8gPT0gMSAmJiBESVAoaXAs
IGlfZGJbbG9jXSk9PSBCTEtfTk9DT1BZKQotCQkJCXBhbmljKCJmZnNfc25hcHNob3Q6IGxv
c3QgZGlyZWN0IGJsb2NrIik7CisJCQkJUEFOSUMoImxvc3QgZGlyZWN0IGJsb2NrIik7CiAJ
CX0KIAl9CiAJZXJyb3IgPSBVRlNfQkFMTE9DKHZwLCBsYmxrdG9zaXplKGZzLCAob2ZmX3Qp
KGJhc2UgKyBsb2MpKSwKQEAgLTk1OSw3ICs5NTgsNyBAQCBjZ2FjY291bnQoY2csIHZwLCBu
YnAsIHBhc3NubykKIAkJCQkoKHVmczFfZGFkZHJfdCAqKShpYnAtPmJfZGF0YSkpW2luZGly
b2ZmXSA9IDA7CiAJCQllbHNlIGlmIChwYXNzbm8gPT0gMSAmJiAoKHVmczFfZGFkZHJfdCAq
KShpYnAtPmJfZGF0YSkpCiAJCQkgICAgW2luZGlyb2ZmXSA9PSBCTEtfTk9DT1BZKQotCQkJ
CXBhbmljKCJmZnNfc25hcHNob3Q6IGxvc3QgaW5kaXJlY3QgYmxvY2siKTsKKwkJCQlQQU5J
QygibG9zdCBpbmRpcmVjdCBibG9jayIpOwogCQkJY29udGludWU7CiAJCX0KIAkJaWYgKGZm
c19pc2Jsb2NrKGZzLCBjZ19ibGtzZnJlZShjZ3ApLCBsb2MpKQpAQCAtOTY5LDcgKzk2OCw3
IEBAIGNnYWNjb3VudChjZywgdnAsIG5icCwgcGFzc25vKQogCQkJKCh1ZnMyX2RhZGRyX3Qg
KikoaWJwLT5iX2RhdGEpKVtpbmRpcm9mZl0gPSAwOwogCQllbHNlIGlmIChwYXNzbm8gPT0g
MSAmJgogCQkgICAgKCh1ZnMyX2RhZGRyX3QgKikoaWJwLT5iX2RhdGEpKSBbaW5kaXJvZmZd
ID09IEJMS19OT0NPUFkpCi0JCQlwYW5pYygiZmZzX3NuYXBzaG90OiBsb3N0IGluZGlyZWN0
IGJsb2NrIik7CisJCQlQQU5JQygibG9zdCBpbmRpcmVjdCBibG9jayIpOwogCX0KIAlpZiAo
cGFzc25vID09IDIpCiAJCWlicC0+Yl9mbGFncyB8PSBCX1ZBTElEU1VTUFdSVDsKQEAgLTEx
MDUsMTIgKzExMDQsMTIgQEAgaW5kaXJhY2N0X3VmczEoc25hcHZwLCBjYW5jZWx2cCwgbGV2
ZWwsIGJsa25vLCBsYm4sIHJsYm4sIHJlbWJsa3MsCiAJaWYgKGJsa25vID09IDApIHsKIAkJ
aWYgKGV4cHVuZ2V0eXBlID09IEJMS19OT0NPUFkpCiAJCQlyZXR1cm4gKDApOwotCQlwYW5p
YygiaW5kaXJhY2N0X3VmczE6IG1pc3NpbmcgaW5kaXIiKTsKKwkJUEFOSUMoIm1pc3Npbmcg
aW5kaXIiKTsKIAl9CiAJaWYgKChlcnJvciA9IHVmc19nZXRsYm5zKGNhbmNlbHZwLCBybGJu
LCBpbmRpcnMsICZudW0pKSAhPSAwKQogCQlyZXR1cm4gKGVycm9yKTsKIAlpZiAobGJuICE9
IGluZGlyc1tudW0gLSAxIC0gbGV2ZWxdLmluX2xibiB8fCBudW0gPCAyKQotCQlwYW5pYygi
aW5kaXJhY2N0X3VmczE6IGJvdGNoZWQgcGFyYW1zIik7CisJCVBBTklDKCJib3RjaGVkIHBh
cmFtcyIpOwogCS8qCiAJICogV2UgaGF2ZSB0byBleHBhbmQgYnJlYWQgaGVyZSBzaW5jZSBp
dCB3aWxsIGRlYWRsb2NrIGxvb2tpbmcKIAkgKiB1cCB0aGUgYmxvY2sgbnVtYmVyIGZvciBh
bnkgYmxvY2tzIHRoYXQgYXJlIG5vdCBpbiB0aGUgY2FjaGUuCkBAIC0xMjE2LDcgKzEyMTUs
NyBAQCBzbmFwYWNjdF91ZnMxKHZwLCBvbGRibGtwLCBsYXN0YmxrcCwgZnMsIGxibGtubywg
ZXhwdW5nZXR5cGUpCiAJCQkJYnJlbHNlKGlicCk7CiAJCX0gZWxzZSB7CiAJCQlpZiAoKmJs
a3AgIT0gMCkKLQkJCQlwYW5pYygic25hcGFjY3RfdWZzMTogYmFkIGJsb2NrIik7CisJCQkJ
UEFOSUMoImJhZCBibG9jayIpOwogCQkJKmJsa3AgPSBleHB1bmdldHlwZTsKIAkJCWlmIChs
Ym4gPj0gTkRBRERSKQogCQkJCWJkd3JpdGUoaWJwKTsKQEAgLTEzODksMTIgKzEzODgsMTIg
QEAgaW5kaXJhY2N0X3VmczIoc25hcHZwLCBjYW5jZWx2cCwgbGV2ZWwsIGJsa25vLCBsYm4s
IHJsYm4sIHJlbWJsa3MsCiAJaWYgKGJsa25vID09IDApIHsKIAkJaWYgKGV4cHVuZ2V0eXBl
ID09IEJMS19OT0NPUFkpCiAJCQlyZXR1cm4gKDApOwotCQlwYW5pYygiaW5kaXJhY2N0X3Vm
czI6IG1pc3NpbmcgaW5kaXIiKTsKKwkJUEFOSUMoIm1pc3NpbmcgaW5kaXIiKTsKIAl9CiAJ
aWYgKChlcnJvciA9IHVmc19nZXRsYm5zKGNhbmNlbHZwLCBybGJuLCBpbmRpcnMsICZudW0p
KSAhPSAwKQogCQlyZXR1cm4gKGVycm9yKTsKIAlpZiAobGJuICE9IGluZGlyc1tudW0gLSAx
IC0gbGV2ZWxdLmluX2xibiB8fCBudW0gPCAyKQotCQlwYW5pYygiaW5kaXJhY2N0X3VmczI6
IGJvdGNoZWQgcGFyYW1zIik7CisJCVBBTklDKCJib3RjaGVkIHBhcmFtcyIpOwogCS8qCiAJ
ICogV2UgaGF2ZSB0byBleHBhbmQgYnJlYWQgaGVyZSBzaW5jZSBpdCB3aWxsIGRlYWRsb2Nr
IGxvb2tpbmcKIAkgKiB1cCB0aGUgYmxvY2sgbnVtYmVyIGZvciBhbnkgYmxvY2tzIHRoYXQg
YXJlIG5vdCBpbiB0aGUgY2FjaGUuCkBAIC0xNTAwLDcgKzE0OTksNyBAQCBzbmFwYWNjdF91
ZnMyKHZwLCBvbGRibGtwLCBsYXN0YmxrcCwgZnMsIGxibGtubywgZXhwdW5nZXR5cGUpCiAJ
CQkJYnJlbHNlKGlicCk7CiAJCX0gZWxzZSB7CiAJCQlpZiAoKmJsa3AgIT0gMCkKLQkJCQlw
YW5pYygic25hcGFjY3RfdWZzMjogYmFkIGJsb2NrIik7CisJCQkJUEFOSUMoImJhZCBibG9j
ayIpOwogCQkJKmJsa3AgPSBleHB1bmdldHlwZTsKIAkJCWlmIChsYm4gPj0gTkRBRERSKQog
CQkJCWJkd3JpdGUoaWJwKTsKQEAgLTE4MDAsNyArMTc5OSw3IEBAIHJldHJ5OgogCQkJICog
KGRvbid0IGNhcmUpIGZvciB1cy4KIAkJCSAqLwogCQkJaWYgKGNsYWltZWRibGspCi0JCQkJ
cGFuaWMoInNuYXBibGtmcmVlOiBpbmNvbnNpc3RlbnQgYmxvY2sgdHlwZSIpOworCQkJCVBB
TklDKCJpbmNvbnNpc3RlbnQgYmxvY2sgdHlwZSIpOwogCQkJaWYgKGxibiA8IE5EQUREUikg
ewogCQkJCURJUF9TRVQoaXAsIGlfZGJbbGJuXSwgQkxLX05PQ09QWSk7CiAJCQkJaXAtPmlf
ZmxhZyB8PSBJTl9DSEFOR0UgfCBJTl9VUERBVEU7CkBAIC0yMDIyLDggKzIwMjEsNyBAQCBm
ZnNfc25hcHNob3RfbW91bnQobXApCiAJCSAqLwogCQlWSV9MT0NLKGRldnZwKTsKIAkJaWYg
KGlwLT5pX25leHRzbmFwLnRxZV9wcmV2ICE9IDApCi0JCQlwYW5pYygiZmZzX3NuYXBzaG90
X21vdW50OiAlanUgYWxyZWFkeSBvbiBsaXN0IiwKLQkJCSAgICAodWludG1heF90KWlwLT5p
X251bWJlcik7CisJCQlQQU5JQygiJWp1IGFscmVhZHkgb24gbGlzdCIsICh1aW50bWF4X3Qp
aXAtPmlfbnVtYmVyKTsKIAkJZWxzZQogCQkJVEFJTFFfSU5TRVJUX1RBSUwoJnNuLT5zbl9o
ZWFkLCBpcCwgaV9uZXh0c25hcCk7CiAJCXZwLT52X3ZmbGFnIHw9IFZWX1NZU1RFTTsKQEAg
LTIxOTAsNyArMjE4OCw3IEBAIGZmc19iZGZsdXNoKGJvLCBicCkKIAkJCQkgICAgIExLX0VY
Q0xVU0lWRSB8IExLX05PV0FJVCwgTlVMTCkpCiAJCQkJY29udGludWU7CiAJCQlpZiAoYnAg
PT0gbmJwKQotCQkJCXBhbmljKCJiZHdyaXRlOiBmb3VuZCBvdXJzZWx2ZXMiKTsKKwkJCQlQ
QU5JQygiZm91bmQgb3Vyc2VsdmVzIik7CiAJCQlCT19VTkxPQ0soYm8pOwogCQkJLyoKIAkJ
CSAqIERvbid0IGNvdW50ZGVwcyB3aXRoIHRoZSBibyBsb2NrCkBAIC0yMjUwLDcgKzIyNDgs
NyBAQCBmZnNfY29weW9ud3JpdGUoZGV2dnAsIGJwKQogCWlmIChkZXZ2cCAhPSBicC0+Yl92
cCAmJiBJU19TTkFQU0hPVChWVE9JKGJwLT5iX3ZwKSkpCiAJCXJldHVybiAoMCk7CQkvKiBV
cGRhdGUgb24gYSBzbmFwc2hvdCBmaWxlICovCiAJaWYgKHRkLT50ZF9wZmxhZ3MgJiBURFBf
Q09XSU5QUk9HUkVTUykKLQkJcGFuaWMoImZmc19jb3B5b253cml0ZTogcmVjdXJzaXZlIGNh
bGwiKTsKKwkJUEFOSUMoInJlY3Vyc2l2ZSBjYWxsIik7CiAJLyoKIAkgKiBGaXJzdCBjaGVj
ayB0byBzZWUgaWYgaXQgaXMgaW4gdGhlIHByZWFsbG9jYXRlZCBsaXN0LgogCSAqIEJ5IGRv
aW5nIHRoaXMgY2hlY2sgd2UgYXZvaWQgc2V2ZXJhbCBwb3RlbnRpYWwgZGVhZGxvY2tzLgpA
QCAtMjM0NSw3ICsyMzQzLDcgQEAgZmZzX2NvcHlvbndyaXRlKGRldnZwLCBicCkKIAkJfQog
I2lmZGVmIElOVkFSSUFOVFMKIAkJaWYgKGJsa25vID09IEJMS19TTkFQICYmIGJwLT5iX2xi
bGtubyA+PSAwKQotCQkJcGFuaWMoImZmc19jb3B5b253cml0ZTogYmFkIGNvcHkgYmxvY2si
KTsKKwkJCVBBTklDKCJiYWQgY29weSBibG9jayIpOwogI2VuZGlmCiAJCWlmIChibGtubyAh
PSAwKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9zeXMvdWZzL2Zmcy9mZnNfc29mdGRl
cC5jIGIvc3lzL3Vmcy9mZnMvZmZzX3NvZnRkZXAuYwppbmRleCAxNmZlMTM0Li40OGQ4MDcz
IDEwMDY0NAotLS0gYS9zeXMvdWZzL2Zmcy9mZnNfc29mdGRlcC5jCisrKyBiL3N5cy91ZnMv
ZmZzL2Zmc19zb2Z0ZGVwLmMKQEAgLTEwNCw3ICsxMDQsNyBAQCBzb2Z0ZGVwX2ZsdXNoZmls
ZXMob2xkbW50LCBmbGFncywgdGQpCiAJc3RydWN0IHRocmVhZCAqdGQ7CiB7CiAKLQlwYW5p
Yygic29mdGRlcF9mbHVzaGZpbGVzIGNhbGxlZCIpOworCVBBTklDKCJjYWxsZWQiKTsKIH0K
IAogaW50CkBAIC0xNTUsNyArMTU1LDcgQEAgc29mdGRlcF9zZXR1cF9pbm9tYXBkZXAoYnAs
IGlwLCBuZXdpbnVtLCBtb2RlKQogCWludCBtb2RlOwogewogCi0JcGFuaWMoInNvZnRkZXBf
c2V0dXBfaW5vbWFwZGVwIGNhbGxlZCIpOworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAogdm9p
ZApAQCAtMTY3LDcgKzE2Nyw3IEBAIHNvZnRkZXBfc2V0dXBfYmxrbWFwZGVwKGJwLCBtcCwg
bmV3Ymxrbm8sIGZyYWdzLCBvbGRmcmFncykKIAlpbnQgb2xkZnJhZ3M7CiB7CiAKLQlwYW5p
Yygic29mdGRlcF9zZXR1cF9ibGttYXBkZXAgY2FsbGVkIik7CisJUEFOSUMoImNhbGxlZCIp
OwogfQogCiB2b2lkIApAQCAtMTgxLDcgKzE4MSw3IEBAIHNvZnRkZXBfc2V0dXBfYWxsb2Nk
aXJlY3QoaXAsIGxibiwgbmV3Ymxrbm8sIG9sZGJsa25vLCBuZXdzaXplLCBvbGRzaXplLCBi
cCkKIAlzdHJ1Y3QgYnVmICpicDsKIHsKIAkKLQlwYW5pYygic29mdGRlcF9zZXR1cF9hbGxv
Y2RpcmVjdCBjYWxsZWQiKTsKKwlQQU5JQygiY2FsbGVkIik7CiB9CiAKIHZvaWQgCkBAIC0x
OTUsNyArMTk1LDcgQEAgc29mdGRlcF9zZXR1cF9hbGxvY2V4dChpcCwgbGJuLCBuZXdibGtu
bywgb2xkYmxrbm8sIG5ld3NpemUsIG9sZHNpemUsIGJwKQogCXN0cnVjdCBidWYgKmJwOwog
ewogCQotCXBhbmljKCJzb2Z0ZGVwX3NldHVwX2FsbG9jZXh0IGNhbGxlZCIpOworCVBBTklD
KCJjYWxsZWQiKTsKIH0KIAogdm9pZApAQCAtMjA5LDcgKzIwOSw3IEBAIHNvZnRkZXBfc2V0
dXBfYWxsb2NpbmRpcl9wYWdlKGlwLCBsYm4sIGJwLCBwdHJubywgbmV3Ymxrbm8sIG9sZGJs
a25vLCBuYnApCiAJc3RydWN0IGJ1ZiAqbmJwOwogewogCi0JcGFuaWMoInNvZnRkZXBfc2V0
dXBfYWxsb2NpbmRpcl9wYWdlIGNhbGxlZCIpOworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAog
dm9pZApAQCAtMjIxLDcgKzIyMSw3IEBAIHNvZnRkZXBfc2V0dXBfYWxsb2NpbmRpcl9tZXRh
KG5icCwgaXAsIGJwLCBwdHJubywgbmV3Ymxrbm8pCiAJdWZzMl9kYWRkcl90IG5ld2Jsa25v
OwogewogCi0JcGFuaWMoInNvZnRkZXBfc2V0dXBfYWxsb2NpbmRpcl9tZXRhIGNhbGxlZCIp
OworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAogdm9pZApAQCAtMjMyLDcgKzIzMiw3IEBAIHNv
ZnRkZXBfam91cm5hbF9mcmVlYmxvY2tzKGlwLCBjcmVkLCBsZW5ndGgsIGZsYWdzKQogCWlu
dCBmbGFnczsKIHsKIAkKLQlwYW5pYygic29mdGRlcF9qb3VybmFsX2ZyZWVibG9ja3MgY2Fs
bGVkIik7CisJUEFOSUMoImNhbGxlZCIpOwogfQogCiB2b2lkCkBAIC0yNDAsNyArMjQwLDcg
QEAgc29mdGRlcF9qb3VybmFsX2ZzeW5jKGlwKQogCXN0cnVjdCBpbm9kZSAqaXA7CiB7CiAK
LQlwYW5pYygic29mdGRlcF9qb3VybmFsX2ZzeW5jIGNhbGxlZCIpOworCVBBTklDKCJjYWxs
ZWQiKTsKIH0KIAogdm9pZApAQCAtMjUwLDcgKzI1MCw3IEBAIHNvZnRkZXBfc2V0dXBfZnJl
ZWJsb2NrcyhpcCwgbGVuZ3RoLCBmbGFncykKIAlpbnQgZmxhZ3M7CiB7CiAJCi0JcGFuaWMo
InNvZnRkZXBfc2V0dXBfZnJlZWJsb2NrcyBjYWxsZWQiKTsKKwlQQU5JQygiY2FsbGVkIik7
CiB9CiAKIHZvaWQKQEAgLTI2MCw3ICsyNjAsNyBAQCBzb2Z0ZGVwX2ZyZWVmaWxlKHB2cCwg
aW5vLCBtb2RlKQogCQlpbnQgbW9kZTsKIHsKIAotCXBhbmljKCJzb2Z0ZGVwX2ZyZWVmaWxl
IGNhbGxlZCIpOworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAogaW50IApAQCAtMjczLDcgKzI3
Myw3IEBAIHNvZnRkZXBfc2V0dXBfZGlyZWN0b3J5X2FkZChicCwgZHAsIGRpcm9mZnNldCwg
bmV3aW51bSwgbmV3ZGlyYnAsIGlzbmV3YmxrKQogCWludCBpc25ld2JsazsKIHsKIAotCXBh
bmljKCJzb2Z0ZGVwX3NldHVwX2RpcmVjdG9yeV9hZGQgY2FsbGVkIik7CisJUEFOSUMoImNh
bGxlZCIpOwogfQogCiB2b2lkIApAQCAtMjg2LDcgKzI4Niw3IEBAIHNvZnRkZXBfY2hhbmdl
X2RpcmVjdG9yeWVudHJ5X29mZnNldChicCwgZHAsIGJhc2UsIG9sZGxvYywgbmV3bG9jLCBl
bnRyeXNpemUpCiAJaW50IGVudHJ5c2l6ZTsKIHsKIAotCXBhbmljKCJzb2Z0ZGVwX2NoYW5n
ZV9kaXJlY3RvcnllbnRyeV9vZmZzZXQgY2FsbGVkIik7CisJUEFOSUMoImNhbGxlZCIpOwog
fQogCiB2b2lkIApAQCAtMjk3LDcgKzI5Nyw3IEBAIHNvZnRkZXBfc2V0dXBfcmVtb3ZlKGJw
LCBkcCwgaXAsIGlzcm1kaXIpCiAJaW50IGlzcm1kaXI7CiB7CiAJCi0JcGFuaWMoInNvZnRk
ZXBfc2V0dXBfcmVtb3ZlIGNhbGxlZCIpOworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAogdm9p
ZCAKQEAgLTMwOSw3ICszMDksNyBAQCBzb2Z0ZGVwX3NldHVwX2RpcmVjdG9yeV9jaGFuZ2Uo
YnAsIGRwLCBpcCwgbmV3aW51bSwgaXNybWRpcikKIAlpbnQgaXNybWRpcjsKIHsKIAotCXBh
bmljKCJzb2Z0ZGVwX3NldHVwX2RpcmVjdG9yeV9jaGFuZ2UgY2FsbGVkIik7CisJUEFOSUMo
ImNhbGxlZCIpOwogfQogCiB2b2lkCkBAIC0zMjEsNyArMzIxLDcgQEAgc29mdGRlcF9zZXR1
cF9ibGtmcmVlKG1wLCBicCwgYmxrbm8sIGZyYWdzLCB3a2hkKQogCXN0cnVjdCB3b3JraGVh
ZCAqd2toZDsKIHsKIAotCXBhbmljKCIlcyBjYWxsZWQiLCBfX0ZVTkNUSU9OX18pOworCVBB
TklDKCJjYWxsZWQiKTsKIH0KIAogdm9pZApAQCAtMzMyLDcgKzMzMiw3IEBAIHNvZnRkZXBf
c2V0dXBfaW5vZnJlZShtcCwgYnAsIGlubywgd2toZCkKIAlzdHJ1Y3Qgd29ya2hlYWQgKndr
aGQ7CiB7CiAKLQlwYW5pYygiJXMgY2FsbGVkIiwgX19GVU5DVElPTl9fKTsKKwlQQU5JQygi
Y2FsbGVkIik7CiB9CiAKIHZvaWQKQEAgLTM0MSw3ICszNDEsNyBAQCBzb2Z0ZGVwX3NldHVw
X3VubGluayhkcCwgaXApCiAJc3RydWN0IGlub2RlICppcDsKIHsKIAotCXBhbmljKCIlcyBj
YWxsZWQiLCBfX0ZVTkNUSU9OX18pOworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAogdm9pZApA
QCAtMzUwLDcgKzM1MCw3IEBAIHNvZnRkZXBfc2V0dXBfbGluayhkcCwgaXApCiAJc3RydWN0
IGlub2RlICppcDsKIHsKIAotCXBhbmljKCIlcyBjYWxsZWQiLCBfX0ZVTkNUSU9OX18pOwor
CVBBTklDKCJjYWxsZWQiKTsKIH0KIAogdm9pZApAQCAtMzU5LDcgKzM1OSw3IEBAIHNvZnRk
ZXBfcmV2ZXJ0X2xpbmsoZHAsIGlwKQogCXN0cnVjdCBpbm9kZSAqaXA7CiB7CiAKLQlwYW5p
YygiJXMgY2FsbGVkIiwgX19GVU5DVElPTl9fKTsKKwlQQU5JQygiY2FsbGVkIik7CiB9CiAK
IHZvaWQKQEAgLTM2OCw3ICszNjgsNyBAQCBzb2Z0ZGVwX3NldHVwX3JtZGlyKGRwLCBpcCkK
IAlzdHJ1Y3QgaW5vZGUgKmlwOwogewogCi0JcGFuaWMoIiVzIGNhbGxlZCIsIF9fRlVOQ1RJ
T05fXyk7CisJUEFOSUMoImNhbGxlZCIpOwogfQogCiB2b2lkCkBAIC0zNzcsNyArMzc3LDcg
QEAgc29mdGRlcF9yZXZlcnRfcm1kaXIoZHAsIGlwKQogCXN0cnVjdCBpbm9kZSAqaXA7CiB7
CiAKLQlwYW5pYygiJXMgY2FsbGVkIiwgX19GVU5DVElPTl9fKTsKKwlQQU5JQygiY2FsbGVk
Iik7CiB9CiAKIHZvaWQKQEAgLTM4Niw3ICszODYsNyBAQCBzb2Z0ZGVwX3NldHVwX2NyZWF0
ZShkcCwgaXApCiAJc3RydWN0IGlub2RlICppcDsKIHsKIAotCXBhbmljKCIlcyBjYWxsZWQi
LCBfX0ZVTkNUSU9OX18pOworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAogdm9pZApAQCAtMzk1
LDcgKzM5NSw3IEBAIHNvZnRkZXBfcmV2ZXJ0X2NyZWF0ZShkcCwgaXApCiAJc3RydWN0IGlu
b2RlICppcDsKIHsKIAotCXBhbmljKCIlcyBjYWxsZWQiLCBfX0ZVTkNUSU9OX18pOworCVBB
TklDKCJjYWxsZWQiKTsKIH0KIAogdm9pZApAQCAtNDA0LDcgKzQwNCw3IEBAIHNvZnRkZXBf
c2V0dXBfbWtkaXIoZHAsIGlwKQogCXN0cnVjdCBpbm9kZSAqaXA7CiB7CiAKLQlwYW5pYygi
JXMgY2FsbGVkIiwgX19GVU5DVElPTl9fKTsKKwlQQU5JQygiY2FsbGVkIik7CiB9CiAKIHZv
aWQKQEAgLTQxMyw3ICs0MTMsNyBAQCBzb2Z0ZGVwX3JldmVydF9ta2RpcihkcCwgaXApCiAJ
c3RydWN0IGlub2RlICppcDsKIHsKIAotCXBhbmljKCIlcyBjYWxsZWQiLCBfX0ZVTkNUSU9O
X18pOworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAogdm9pZApAQCAtNDIyLDcgKzQyMiw3IEBA
IHNvZnRkZXBfc2V0dXBfZG90ZG90X2xpbmsoZHAsIGlwKQogCXN0cnVjdCBpbm9kZSAqaXA7
CiB7CiAKLQlwYW5pYygiJXMgY2FsbGVkIiwgX19GVU5DVElPTl9fKTsKKwlQQU5JQygiY2Fs
bGVkIik7CiB9CiAKIGludApAQCAtNDMxLDcgKzQzMSw3IEBAIHNvZnRkZXBfcHJlYWxsb2Mo
dnAsIHdhaXRvaykKIAlpbnQgd2FpdG9rOwogewogCi0JcGFuaWMoIiVzIGNhbGxlZCIsIF9f
RlVOQ1RJT05fXyk7CisJUEFOSUMoImNhbGxlZCIpOwogCiAJcmV0dXJuICgwKTsKIH0KQEAg
LTQ1MCw3ICs0NTAsNyBAQCBzb2Z0ZGVwX2NoYW5nZV9saW5rY250KGlwKQogCXN0cnVjdCBp
bm9kZSAqaXA7CiB7CiAKLQlwYW5pYygic29mdGRlcF9jaGFuZ2VfbGlua2NudCBjYWxsZWQi
KTsKKwlQQU5JQygiY2FsbGVkIik7CiB9CiAKIHZvaWQgCkBAIC00NTgsNyArNDU4LDcgQEAg
c29mdGRlcF9sb2FkX2lub2RlYmxvY2soaXApCiAJc3RydWN0IGlub2RlICppcDsKIHsKIAot
CXBhbmljKCJzb2Z0ZGVwX2xvYWRfaW5vZGVibG9jayBjYWxsZWQiKTsKKwlQQU5JQygiY2Fs
bGVkIik7CiB9CiAKIHZvaWQgCkBAIC00NjgsNyArNDY4LDcgQEAgc29mdGRlcF91cGRhdGVf
aW5vZGVibG9jayhpcCwgYnAsIHdhaXRmb3IpCiAJaW50IHdhaXRmb3I7CiB7CiAKLQlwYW5p
Yygic29mdGRlcF91cGRhdGVfaW5vZGVibG9jayBjYWxsZWQiKTsKKwlQQU5JQygiY2FsbGVk
Iik7CiB9CiAKIGludApAQCAtNTE3LDcgKzUxNyw3IEBAIHNvZnRkZXBfc2xvd2Rvd24odnAp
CiAJc3RydWN0IHZub2RlICp2cDsKIHsKIAotCXBhbmljKCJzb2Z0ZGVwX3Nsb3dkb3duIGNh
bGxlZCIpOworCVBBTklDKCJjYWxsZWQiKTsKIH0KIAogdm9pZApAQCAtNTI1LDcgKzUyNSw3
IEBAIHNvZnRkZXBfcmVsZWFzZWZpbGUoaXApCiAJc3RydWN0IGlub2RlICppcDsJLyogaW5v
ZGUgd2l0aCB0aGUgemVybyBlZmZlY3RpdmUgbGluayBjb3VudCAqLwogewogCi0JcGFuaWMo
InNvZnRkZXBfcmVsZWFzZWZpbGUgY2FsbGVkIik7CisJUEFOSUMoImNhbGxlZCIpOwogfQog
CiBpbnQKQEAgLTU5Nyw3ICs1OTcsNyBAQCBzb2Z0ZGVwX2J1Zl9hcHBlbmQoYnAsIHdraGQp
CiAJc3RydWN0IHdvcmtoZWFkICp3a2hkOwogewogCi0JcGFuaWMoInNvZnRkZXBfYnVmX2Fw
cGVuZHdvcmsgY2FsbGVkIik7CisJUEFOSUMoImNhbGxlZCIpOwogfQogCiB2b2lkCkBAIC02
MDcsNyArNjA
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2013-02-04 20:46:18 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-fs

Over to maintainer(s).
Comment 2 dfilter service freebsd_committer freebsd_triage 2013-02-06 02:51:38 UTC
Author: pfg
Date: Wed Feb  6 02:51:25 2013
New Revision: 246376
URL: http://svnweb.freebsd.org/changeset/base/246376

Log:
  MFC	r246299;
  
  UFS: Remove dead assignment.
  
  PR:		kern/175794
  Submitted by:	Christoph Mallon

Modified:
  stable/9/sys/ufs/ufs/ufs_lookup.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/ufs/ufs/ufs_lookup.c
==============================================================================
--- stable/9/sys/ufs/ufs/ufs_lookup.c	Wed Feb  6 01:03:13 2013	(r246375)
+++ stable/9/sys/ufs/ufs/ufs_lookup.c	Wed Feb  6 02:51:25 2013	(r246376)
@@ -1432,7 +1432,6 @@ ufs_checkpath(ino_t source_ino, ino_t pa
 		return (0);
 	if (target->i_number == ROOTINO)
 		return (0);
-	error = 0;
 	for (;;) {
 		error = ufs_dir_dd_ino(vp, cred, &dd_ino);
 		if (error != 0)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 3 dfilter service freebsd_committer freebsd_triage 2013-02-06 03:00:36 UTC
Author: pfg
Date: Wed Feb  6 03:00:18 2013
New Revision: 246377
URL: http://svnweb.freebsd.org/changeset/base/246377

Log:
  MFC	r246299;
  
  UFS: Remove dead assignment.
  
  PR:		kern/175794
  Submitted by:	Christoph Mallon

Modified:
  stable/8/sys/ufs/ufs/ufs_lookup.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/ufs/   (props changed)

Modified: stable/8/sys/ufs/ufs/ufs_lookup.c
==============================================================================
--- stable/8/sys/ufs/ufs/ufs_lookup.c	Wed Feb  6 02:51:25 2013	(r246376)
+++ stable/8/sys/ufs/ufs/ufs_lookup.c	Wed Feb  6 03:00:18 2013	(r246377)
@@ -1415,7 +1415,6 @@ ufs_checkpath(ino_t source_ino, ino_t pa
 		return (0);
 	if (target->i_number == ROOTINO)
 		return (0);
-	error = 0;
 	for (;;) {
 		error = ufs_dir_dd_ino(vp, cred, &dd_ino);
 		if (error != 0)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 4 Pedro F. Giffuni freebsd_committer freebsd_triage 2013-02-06 03:02:04 UTC
Responsible Changed
From-To: freebsd-fs->pfg

Grab 
I was CC'd so I have the readable version of the patches.
Comment 5 dfilter service freebsd_committer freebsd_triage 2013-02-08 20:30:27 UTC
Author: pfg
Date: Fri Feb  8 20:30:19 2013
New Revision: 246562
URL: http://svnweb.freebsd.org/changeset/base/246562

Log:
  Remove unused MAXSYMLINKLEN macro.
  
  Reviewed by:	mckusick
  PR:		kern/175794
  MFC after:	1 week

Modified:
  head/sys/fs/ext2fs/inode.h
  head/sys/ufs/ufs/inode.h

Modified: head/sys/fs/ext2fs/inode.h
==============================================================================
--- head/sys/fs/ext2fs/inode.h	Fri Feb  8 20:13:28 2013	(r246561)
+++ head/sys/fs/ext2fs/inode.h	Fri Feb  8 20:30:19 2013	(r246562)
@@ -108,7 +108,6 @@ struct inode {
  */
 #define	i_shortlink	i_db
 #define	i_rdev		i_db[0]
-#define	MAXSYMLINKLEN	((NDADDR + NIADDR) * sizeof(int32_t))
 
 /* File permissions. */
 #define	IEXEC		0000100		/* Executable. */

Modified: head/sys/ufs/ufs/inode.h
==============================================================================
--- head/sys/ufs/ufs/inode.h	Fri Feb  8 20:13:28 2013	(r246561)
+++ head/sys/ufs/ufs/inode.h	Fri Feb  8 20:30:19 2013	(r246562)
@@ -151,10 +151,6 @@ struct inode {
 		(ip)->i_din2->d##field = (val); \
 	} while (0)
 
-#define	MAXSYMLINKLEN(ip) \
-	((ip)->i_ump->um_fstype == UFS1) ? \
-	((NDADDR + NIADDR) * sizeof(ufs1_daddr_t)) : \
-	((NDADDR + NIADDR) * sizeof(ufs2_daddr_t))
 #define	SHORTLINK(ip) \
 	(((ip)->i_ump->um_fstype == UFS1) ? \
 	(caddr_t)(ip)->i_din1->di_db : (caddr_t)(ip)->i_din2->di_db)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 6 dfilter service freebsd_committer freebsd_triage 2013-03-01 22:04:05 UTC
Author: pfg
Date: Fri Mar  1 22:03:57 2013
New Revision: 247589
URL: http://svnweb.freebsd.org/changeset/base/247589

Log:
  MFC	r246562:
  
  Remove unused MAXSYMLINKLEN macro.
  
  Reviewed by:	mckusick
  PR:		kern/175794

Modified:
  stable/9/sys/fs/ext2fs/inode.h
  stable/9/sys/ufs/ufs/inode.h
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/fs/   (props changed)

Modified: stable/9/sys/fs/ext2fs/inode.h
==============================================================================
--- stable/9/sys/fs/ext2fs/inode.h	Fri Mar  1 22:03:31 2013	(r247588)
+++ stable/9/sys/fs/ext2fs/inode.h	Fri Mar  1 22:03:57 2013	(r247589)
@@ -108,7 +108,6 @@ struct inode {
  */
 #define	i_shortlink	i_db
 #define	i_rdev		i_db[0]
-#define	MAXSYMLINKLEN	((NDADDR + NIADDR) * sizeof(int32_t))
 
 /* File permissions. */
 #define	IEXEC		0000100		/* Executable. */

Modified: stable/9/sys/ufs/ufs/inode.h
==============================================================================
--- stable/9/sys/ufs/ufs/inode.h	Fri Mar  1 22:03:31 2013	(r247588)
+++ stable/9/sys/ufs/ufs/inode.h	Fri Mar  1 22:03:57 2013	(r247589)
@@ -151,10 +151,6 @@ struct inode {
 		(ip)->i_din2->d##field = (val); \
 	} while (0)
 
-#define	MAXSYMLINKLEN(ip) \
-	((ip)->i_ump->um_fstype == UFS1) ? \
-	((NDADDR + NIADDR) * sizeof(ufs1_daddr_t)) : \
-	((NDADDR + NIADDR) * sizeof(ufs2_daddr_t))
 #define	SHORTLINK(ip) \
 	(((ip)->i_ump->um_fstype == UFS1) ? \
 	(caddr_t)(ip)->i_din1->di_db : (caddr_t)(ip)->i_din2->di_db)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 7 Pedro F. Giffuni freebsd_committer freebsd_triage 2013-03-01 22:05:50 UTC
State Changed
From-To: open->closed

Partially committed and MFC/9. 

The panic changes are matter of discussion in -arch and 
require more review.