Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Sep 2016 13:31:43 +0000
From:      "jceel (Jakub Klama)" <phabric-noreply@FreeBSD.org>
To:        freebsd-virtualization@freebsd.org
Subject:   [Differential] D7185: Add virtio-console support to bhyve
Message-ID:  <ea5a0acf9106a50c75a405537bb56328@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-h346qsj6dfo524z3qnfy-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-h346qsj6dfo524z3qnfy-req@FreeBSD.org>

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

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

amNlZWwgdXBkYXRlZCB0aGlzIHJldmlzaW9uIHRvIERpZmYgMjA0MDEuCmpjZWVsIGFkZGVkIGEg
Y29tbWVudC4KCgogIENhc3QgYmFzZW5hbWUoKSBhcmd1bWVudCB0byBjaGFyICouCgpSRVBPU0lU
T1JZCiAgclMgRnJlZUJTRCBzcmMgcmVwb3NpdG9yeQoKQ0hBTkdFUyBTSU5DRSBMQVNUIFVQREFU
RQogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9ENzE4NT92cz0xODI4NCZpZD0yMDQwMQoK
UkVWSVNJT04gREVUQUlMCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0Q3MTg1CgpBRkZF
Q1RFRCBGSUxFUwogIHVzci5zYmluL2JoeXZlL01ha2VmaWxlCiAgdXNyLnNiaW4vYmh5dmUvcGNp
X3ZpcnRpb19jb25zb2xlLmMKICB1c3Iuc2Jpbi9iaHl2ZS92aXJ0aW8uaAoKRU1BSUwgUFJFRkVS
RU5DRVMKICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvc2V0dGluZ3MvcGFuZWwvZW1haWxw
cmVmZXJlbmNlcy8KClRvOiBqY2VlbCwgZ3JlaGFuLCB0cmFzegpDYzogaW1wLCBmcmVlYnNkLXZp
cnR1YWxpemF0aW9uLWxpc3QK

--b1_ea5a0acf9106a50c75a405537bb56328
Content-Type: text/x-patch; charset=utf-8; name="D7185.20401.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D7185.20401.patch"

ZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZlL3BjaV92aXJ0aW9fY29uc29sZS5jIGIvdXNyLnNi
aW4vYmh5dmUvcGNpX3ZpcnRpb19jb25zb2xlLmMKLS0tIGEvdXNyLnNiaW4vYmh5dmUvcGNpX3Zp
cnRpb19jb25zb2xlLmMKKysrIGIvdXNyLnNiaW4vYmh5dmUvcGNpX3ZpcnRpb19jb25zb2xlLmMK
QEAgLTAsMCArMSw2MzEgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDE2IGlYc3lzdGVtcyBJ
bmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgc29mdHdhcmUgd2FzIGRl
dmVsb3BlZCBieSBKYWt1YiBLbGFtYSA8amNlZWxARnJlZUJTRC5vcmc+CisgKiB1bmRlciBzcG9u
c29yc2hpcCBmcm9tIGlYc3lzdGVtcyBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGlzIHBv
c2l0aW9uIGFuZCB1bmNoYW5nZWQuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CitfX0ZCU0RJRCgiJEZyZWVCU0Qk
Iik7CisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvbGlua2VyX3NldC5o
PgorI2luY2x1ZGUgPHN5cy91aW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRl
IDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3VuLmg+CisKKyNpbmNsdWRlIDxlcnJuby5o
PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRs
aWIuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVk
ZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgor
I2luY2x1ZGUgPGxpYmdlbi5oPgorCisjaW5jbHVkZSAiYmh5dmVydW4uaCIKKyNpbmNsdWRlICJw
Y2lfZW11bC5oIgorI2luY2x1ZGUgInZpcnRpby5oIgorI2luY2x1ZGUgIm1ldmVudC5oIgorCisj
ZGVmaW5lCVZUQ09OX1JJTkdTWgk2NAorI2RlZmluZQlWVENPTl9NQVhQT1JUUwkxNgorI2RlZmlu
ZQlWVENPTl9NQVhRCShWVENPTl9NQVhQT1JUUyAqIDIgKyAyKQorCisjZGVmaW5lCVZUQ09OX0RF
VklDRV9SRUFEWQkwCisjZGVmaW5lCVZUQ09OX0RFVklDRV9BREQJMQorI2RlZmluZQlWVENPTl9E
RVZJQ0VfUkVNT1ZFCTIKKyNkZWZpbmUJVlRDT05fUE9SVF9SRUFEWQkzCisjZGVmaW5lCVZUQ09O
X0NPTlNPTEVfUE9SVAk0CisjZGVmaW5lCVZUQ09OX0NPTlNPTEVfUkVTSVpFCTUKKyNkZWZpbmUJ
VlRDT05fUE9SVF9PUEVOCQk2CisjZGVmaW5lCVZUQ09OX1BPUlRfTkFNRQkJNworCisjZGVmaW5l
CVZUQ09OX0ZfU0laRQkJMAorI2RlZmluZQlWVENPTl9GX01VTFRJUE9SVAkxCisjZGVmaW5lCVZU
Q09OX0ZfRU1FUkdfV1JJVEUJMgorI2RlZmluZQlWVENPTl9TX0hPU1RDQVBTCVwKKyAgICAoVlRD
T05fRl9TSVpFIHwgVlRDT05fRl9NVUxUSVBPUlQgfCBWVENPTl9GX0VNRVJHX1dSSVRFKQorCitz
dGF0aWMgaW50IHBjaV92dGNvbl9kZWJ1ZzsKKyNkZWZpbmUgRFBSSU5URihwYXJhbXMpIGlmIChw
Y2lfdnRjb25fZGVidWcpIHByaW50ZiBwYXJhbXMKKyNkZWZpbmUgV1BSSU5URihwYXJhbXMpIHBy
aW50ZiBwYXJhbXMKKworc3RydWN0IHBjaV92dGNvbl9zb2Z0YzsKK3N0cnVjdCBwY2lfdnRjb25f
cG9ydDsKK3N0cnVjdCBwY2lfdnRjb25fY29uZmlnOwordHlwZWRlZiB2b2lkIChwY2lfdnRjb25f
Y2JfdCkoc3RydWN0IHBjaV92dGNvbl9wb3J0ICosIHZvaWQgKiwgc3RydWN0IGlvdmVjICosCisg
ICAgaW50KTsKKworc3RydWN0IHBjaV92dGNvbl9wb3J0IHsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3Nv
ZnRjICogdnNwX3NjOworCWludCAgICAgICAgICAgICAgICAgICAgICB2c3BfaWQ7CisJY29uc3Qg
Y2hhciAqICAgICAgICAgICAgIHZzcF9uYW1lOworCWJvb2wgICAgICAgICAgICAgICAgICAgICB2
c3BfZW5hYmxlZDsKKwlib29sICAgICAgICAgICAgICAgICAgICAgdnNwX2NvbnNvbGU7CisJYm9v
bCAgICAgICAgICAgICAgICAgICAgIHZzcF9yeF9yZWFkeTsKKwlpbnQgICAgICAgICAgICAgICAg
ICAgICAgdnNwX3J4cTsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNwX3R4cTsKKwl2b2lk
ICogICAgICAgICAgICAgICAgICAgdnNwX2FyZzsKKwlwY2lfdnRjb25fY2JfdCAqICAgICAgICAg
dnNwX2NiOworfTsKKworc3RydWN0IHBjaV92dGNvbl9zb2NrCit7CisJc3RydWN0IHBjaV92dGNv
bl9wb3J0ICogIHZzc19wb3J0OworCWNvbnN0IGNoYXIgKiAgICAgICAgICAgICB2c3NfcGF0aDsK
KwlzdHJ1Y3QgbWV2ZW50ICogICAgICAgICAgdnNzX3NlcnZlcl9ldnA7CisJc3RydWN0IG1ldmVu
dCAqICAgICAgICAgIHZzc19jb25uX2V2cDsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNz
X3NlcnZlcl9mZDsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNzX2Nvbm5fZmQ7CisJYm9v
bCAgICAgICAgICAgICAgICAgICAgIHZzc19vcGVuOworfTsKKworc3RydWN0IHBjaV92dGNvbl9z
b2Z0YyB7CisJc3RydWN0IHZpcnRpb19zb2Z0YyAgICAgIHZzY192czsKKwlzdHJ1Y3QgdnF1ZXVl
X2luZm8gICAgICAgdnNjX3F1ZXVlc1tWVENPTl9NQVhRXTsKKwlwdGhyZWFkX211dGV4X3QgICAg
ICAgICAgdnNjX210eDsKKwl1aW50NjRfdCAgICAgICAgICAgICAgICAgdnNjX2NmZzsKKwl1aW50
NjRfdCAgICAgICAgICAgICAgICAgdnNjX2ZlYXR1cmVzOworCWNoYXIgKiAgICAgICAgICAgICAg
ICAgICB2c2Nfcm9vdGRpcjsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNjX2txOworCWlu
dCAgICAgICAgICAgICAgICAgICAgICB2c2NfbnBvcnRzOworCXN0cnVjdCBwY2lfdnRjb25fcG9y
dCAgICB2c2NfY29udHJvbF9wb3J0OworIAlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgICAgdnNjX3Bv
cnRzW1ZUQ09OX01BWFBPUlRTXTsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX2NvbmZpZyAqdnNjX2NvbmZp
ZzsKK307CisKK3N0cnVjdCBwY2lfdnRjb25fY29uZmlnIHsKKwl1aW50MTZfdCBjb2xzOworCXVp
bnQxNl90IHJvd3M7CisJdWludDMyX3QgbWF4X25yX3BvcnRzOworCXVpbnQzMl90IGVtZXJnX3dy
OworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IHBjaV92dGNvbl9jb250cm9s
IHsKKwl1aW50MzJfdCBpZDsKKwl1aW50MTZfdCBldmVudDsKKwl1aW50MTZfdCB2YWx1ZTsKK30g
X19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0cnVjdCBwY2lfdnRjb25fY29uc29sZV9yZXNp
emUgeworCXVpbnQxNl90IGNvbHM7CisJdWludDE2X3Qgcm93czsKK30gX19hdHRyaWJ1dGVfXygo
cGFja2VkKSk7CisKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9yZXNldCh2b2lkICopOworc3RhdGlj
IHZvaWQgcGNpX3Z0Y29uX25vdGlmeV9yeCh2b2lkICosIHN0cnVjdCB2cXVldWVfaW5mbyAqKTsK
K3N0YXRpYyB2b2lkIHBjaV92dGNvbl9ub3RpZnlfdHgodm9pZCAqLCBzdHJ1Y3QgdnF1ZXVlX2lu
Zm8gKik7CitzdGF0aWMgaW50IHBjaV92dGNvbl9jZmdyZWFkKHZvaWQgKiwgaW50LCBpbnQsIHVp
bnQzMl90ICopOworc3RhdGljIGludCBwY2lfdnRjb25fY2Znd3JpdGUodm9pZCAqLCBpbnQsIGlu
dCwgdWludDMyX3QpOworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX25lZ19mZWF0dXJlcyh2b2lkICos
IHVpbnQ2NF90KTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9zb2NrX2FjY2VwdChpbnQsIGVudW0g
ZXZfdHlwZSwgIHZvaWQgKik7CitzdGF0aWMgdm9pZCBwY2lfdnRjb25fc29ja19yeChpbnQsIGVu
dW0gZXZfdHlwZSwgdm9pZCAqKTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9zb2NrX3R4KHN0cnVj
dCBwY2lfdnRjb25fcG9ydCAqLCB2b2lkICosIHN0cnVjdCBpb3ZlYyAqLAorICAgIGludCk7Citz
dGF0aWMgdm9pZCBwY2lfdnRjb25fY29udHJvbF9zZW5kKHN0cnVjdCBwY2lfdnRjb25fc29mdGMg
KiwKKyAgICBzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3Qp
Oworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX2Fubm91bmNlX3BvcnQoc3RydWN0IHBjaV92dGNvbl9w
b3J0ICopOworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX29wZW5fcG9ydChzdHJ1Y3QgcGNpX3Z0Y29u
X3BvcnQgKiwgYm9vbCk7CisKK3N0YXRpYyBzdHJ1Y3QgdmlydGlvX2NvbnN0cyB2dGNvbl92aV9j
b25zdHMgPSB7CisJInZ0Y29uIiwJCS8qIG91ciBuYW1lICovCisJVlRDT05fTUFYUSwJCS8qIHdl
IHN1cHBvcnQgVlRDT05fTUFYUSB2aXJ0cXVldWVzICovCisJc2l6ZW9mKHN0cnVjdCBwY2lfdnRj
b25fY29uZmlnKSwgLyogY29uZmlnIHJlZyBzaXplICovCisJcGNpX3Z0Y29uX3Jlc2V0LAkvKiBy
ZXNldCAqLworCU5VTEwsCQkJLyogZGV2aWNlLXdpZGUgcW5vdGlmeSAqLworCXBjaV92dGNvbl9j
ZmdyZWFkLAkvKiByZWFkIHZpcnRpbyBjb25maWcgKi8KKwlwY2lfdnRjb25fY2Znd3JpdGUsCS8q
IHdyaXRlIHZpcnRpbyBjb25maWcgKi8KKwlwY2lfdnRjb25fbmVnX2ZlYXR1cmVzLAkvKiBhcHBs
eSBuZWdvdGlhdGVkIGZlYXR1cmVzICovCisJVlRDT05fU19IT1NUQ0FQUywJLyogb3VyIGNhcGFi
aWxpdGllcyAqLworfTsKKworCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX3Jlc2V0KHZvaWQgKnZz
YykKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYzsKKworCXNjID0gdnNjOworCisJRFBS
SU5URigoInZ0Y29uOiBkZXZpY2UgcmVzZXQgcmVxdWVzdGVkIVxuIikpOworCXZpX3Jlc2V0X2Rl
digmc2MtPnZzY192cyk7Cit9CisKK3N0YXRpYyB2b2lkCitwY2lfdnRjb25fbmVnX2ZlYXR1cmVz
KHZvaWQgKnZzYywgdWludDY0X3QgbmVnb3RpYXRlZF9mZWF0dXJlcykKK3sKKwlzdHJ1Y3QgcGNp
X3Z0Y29uX3NvZnRjICpzYyA9IHZzYzsKKworCXNjLT52c2NfZmVhdHVyZXMgPSBuZWdvdGlhdGVk
X2ZlYXR1cmVzOworfQorCitzdGF0aWMgaW50CitwY2lfdnRjb25fY2ZncmVhZCh2b2lkICp2c2Ms
IGludCBvZmZzZXQsIGludCBzaXplLCB1aW50MzJfdCAqcmV0dmFsKQoreworCXN0cnVjdCBwY2lf
dnRjb25fc29mdGMgKnNjID0gdnNjOworCXZvaWQgKnB0cjsKKworCXB0ciA9ICh1aW50OF90ICop
c2MtPnZzY19jb25maWcgKyBvZmZzZXQ7CisJbWVtY3B5KHJldHZhbCwgcHRyLCBzaXplKTsKKwly
ZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50CitwY2lfdnRjb25fY2Znd3JpdGUodm9pZCAqdnNj
LCBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdWludDMyX3QgdmFsKQoreworCisJcmV0dXJuICgwKTsK
K30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKgorcGNpX3Z0Y29uX3Zx
X3RvX3BvcnQoc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2MsIHN0cnVjdCB2cXVldWVfaW5mbyAq
dnEpCit7CisJdWludDE2X3QgbnVtID0gdnEtPnZxX251bTsKKworCWlmIChudW0gPT0gMCB8fCBu
dW0gPT0gMSkKKwkJcmV0dXJuICgmc2MtPnZzY19wb3J0c1swXSk7CisKKwlpZiAobnVtID09IDIg
fHwgbnVtID09IDMpCisJCXJldHVybiAoJnNjLT52c2NfY29udHJvbF9wb3J0KTsKKworCXJldHVy
biAoJnNjLT52c2NfcG9ydHNbKG51bSAvIDIpIC0gMV0pOworfQorCitzdGF0aWMgaW5saW5lIHN0
cnVjdCB2cXVldWVfaW5mbyAqCitwY2lfdnRjb25fcG9ydF90b192cShzdHJ1Y3QgcGNpX3Z0Y29u
X3BvcnQgKnBvcnQsIGJvb2wgdHhfcXVldWUpCit7CisJaW50IHFudW07CisKKwlxbnVtID0gdHhf
cXVldWUgPyBwb3J0LT52c3BfdHhxIDogcG9ydC0+dnNwX3J4cTsKKwlyZXR1cm4gKCZwb3J0LT52
c3Bfc2MtPnZzY19xdWV1ZXNbcW51bV0pOworfQorCitzdGF0aWMgc3RydWN0IHBjaV92dGNvbl9w
b3J0ICoKK3BjaV92dGNvbl9wb3J0X2FkZChzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYywgY29u
c3QgY2hhciAqbmFtZSwKKyAgICBwY2lfdnRjb25fY2JfdCAqY2IsIHZvaWQgKmFyZykKK3sKKwlz
dHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQ7CisKKwlpZiAoc2MtPnZzY19ucG9ydHMgPT0gVlRD
T05fTUFYUE9SVFMpIHsKKwkJZXJybm8gPSBFQlVTWTsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisK
Kwlwb3J0ID0gJnNjLT52c2NfcG9ydHNbc2MtPnZzY19ucG9ydHMrK107CisJcG9ydC0+dnNwX2lk
ID0gc2MtPnZzY19ucG9ydHMgLSAxOworCXBvcnQtPnZzcF9zYyA9IHNjOworCXBvcnQtPnZzcF9u
YW1lID0gbmFtZTsKKwlwb3J0LT52c3BfY2IgPSBjYjsKKwlwb3J0LT52c3BfYXJnID0gYXJnOwor
CisJaWYgKHBvcnQtPnZzcF9pZCA9PSAwKSB7CisJCS8qIHBvcnQwICovCisJCXBvcnQtPnZzcF90
eHEgPSAwOworCQlwb3J0LT52c3BfcnhxID0gMTsKKwl9IGVsc2UgeworCQlwb3J0LT52c3BfdHhx
ID0gc2MtPnZzY19ucG9ydHMgKiAyOworCQlwb3J0LT52c3BfcnhxID0gcG9ydC0+dnNwX3R4cSAr
IDE7CisJfQorCisJcG9ydC0+dnNwX2VuYWJsZWQgPSB0cnVlOworCXJldHVybiAocG9ydCk7Cit9
CisKK3N0YXRpYyBpbnQKK3BjaV92dGNvbl9zb2NrX2FkZChzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRj
ICpzYywgY29uc3QgY2hhciAqbmFtZSwKKyAgICBjb25zdCBjaGFyICpwYXRoKQoreworCXN0cnVj
dCBwY2lfdnRjb25fc29jayAqc29jazsKKwlzdHJ1Y3Qgc29ja2FkZHJfdW4gc3VuOworCWludCBz
ID0gLTEsIGZkID0gLTEsIGVycm9yID0gMDsKKworCXNvY2sgPSBjYWxsb2MoMSwgc2l6ZW9mKHN0
cnVjdCBwY2lfdnRjb25fc29jaykpOworCWlmIChzb2NrID09IE5VTEwpIHsKKwkJZXJyb3IgPSAt
MTsKKwkJZ290byBvdXQ7CisJfQorCisJcyA9IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVBTSwg
MCk7CisJaWYgKHMgPCAwKSB7CisJCWVycm9yID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCWZk
ID0gb3BlbihkaXJuYW1lKHBhdGgpLCBPX1JET05MWSB8IE9fRElSRUNUT1JZKTsKKwlpZiAoZmQg
PCAwKSB7CisJCWVycm9yID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCXN1bi5zdW5fZmFtaWx5
ID0gQUZfVU5JWDsKKwlzdW4uc3VuX2xlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfdW4pOwor
CXN0cm5jcHkoc3VuLnN1bl9wYXRoLCBiYXNlbmFtZSgoY2hhciAqKXBhdGgpLCBzaXplb2Yoc3Vu
LnN1bl9wYXRoKSk7CisKKwlpZiAoYmluZGF0KGZkLCBzLCAoc3RydWN0IHNvY2thZGRyICopJnN1
biwgc3VuLnN1bl9sZW4pIDwgMCkgeworCQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisK
KwlpZiAoZmNudGwocywgRl9TRVRGTCwgT19OT05CTE9DSykgPCAwKSB7CisJCWVycm9yID0gLTE7
CisJCWdvdG8gb3V0OworCX0KKworCWlmIChsaXN0ZW4ocywgMSkgPCAwKSB7CisJCWVycm9yID0g
LTE7CisJCWdvdG8gb3V0OworCX0KKworCisJc29jay0+dnNzX3BvcnQgPSBwY2lfdnRjb25fcG9y
dF9hZGQoc2MsIG5hbWUsIHBjaV92dGNvbl9zb2NrX3R4LCBzb2NrKTsKKwlpZiAoc29jay0+dnNz
X3BvcnQgPT0gTlVMTCkgeworCQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKwlzb2Nr
LT52c3Nfb3BlbiA9IGZhbHNlOworCXNvY2stPnZzc19jb25uX2ZkID0gLTE7CisJc29jay0+dnNz
X3NlcnZlcl9mZCA9IHM7CisJc29jay0+dnNzX3NlcnZlcl9ldnAgPSBtZXZlbnRfYWRkKHMsIEVW
Rl9SRUFELCBwY2lfdnRjb25fc29ja19hY2NlcHQsCisJICAgIHNvY2spOworCisJaWYgKHNvY2st
PnZzc19zZXJ2ZXJfZXZwID09IE5VTEwpIHsKKwkJZXJyb3IgPSAtMTsKKwkJZ290byBvdXQ7CisJ
fQorCitvdXQ6CisJaWYgKGZkICE9IC0xKQorCQljbG9zZShmZCk7CisKKwlpZiAoZXJyb3IgIT0g
MCAmJiBzICE9IC0xKQorCQljbG9zZShzKTsKKworCXJldHVybiAoZXJyb3IpOworfQorCitzdGF0
aWMgdm9pZAorcGNpX3Z0Y29uX3NvY2tfYWNjZXB0KGludCBmZCBfX3VudXNlZCwgZW51bSBldl90
eXBlIHQgX191bnVzZWQsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvY2sgKnNv
Y2sgPSAoc3RydWN0IHBjaV92dGNvbl9zb2NrICopYXJnOworCWludCBzOworCisJcyA9IGFjY2Vw
dChzb2NrLT52c3Nfc2VydmVyX2ZkLCBOVUxMLCBOVUxMKTsKKwlpZiAocyA8IDApCisJCXJldHVy
bjsKKworCWlmIChzb2NrLT52c3Nfb3BlbikgeworCQljbG9zZShzKTsKKwkJcmV0dXJuOworCX0K
KworCXNvY2stPnZzc19vcGVuID0gdHJ1ZTsKKwlzb2NrLT52c3NfY29ubl9mZCA9IHM7CisJc29j
ay0+dnNzX2Nvbm5fZXZwID0gbWV2ZW50X2FkZChzLCBFVkZfUkVBRCwgcGNpX3Z0Y29uX3NvY2tf
cngsIHNvY2spOworCXBjaV92dGNvbl9vcGVuX3BvcnQoc29jay0+dnNzX3BvcnQsIHRydWUpOwor
fQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX3NvY2tfcngoaW50IGZkIF9fdW51c2VkLCBlbnVt
IGV2X3R5cGUgdCBfX3VudXNlZCwgdm9pZCAqYXJnKQoreworCXN0cnVjdCBwY2lfdnRjb25fcG9y
dCAqcG9ydDsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvY2sgKnNvY2sgPSAoc3RydWN0IHBjaV92dGNv
bl9zb2NrICopYXJnOworCXN0cnVjdCB2cXVldWVfaW5mbyAqdnE7CisJc3RydWN0IGlvdmVjIGlv
djsKKwlzdGF0aWMgY2hhciBkdW1teWJ1ZlsyMDQ4XTsKKwlpbnQgbGVuLCBuOworCXVpbnQxNl90
IGlkeDsKKworCXBvcnQgPSBzb2NrLT52c3NfcG9ydDsKKwl2cSA9IHBjaV92dGNvbl9wb3J0X3Rv
X3ZxKHBvcnQsIHRydWUpOworCisJaWYgKCFzb2NrLT52c3Nfb3BlbiB8fCAhcG9ydC0+dnNwX3J4
X3JlYWR5KSB7CisJCWxlbiA9IHJlYWQoc29jay0+dnNzX2Nvbm5fZmQsIGR1bW15YnVmLCBzaXpl
b2YoZHVtbXlidWYpKTsKKwkJaWYgKGxlbiA9PSAwKQorCQkJZ290byBjbG9zZTsKKworCQlyZXR1
cm47CisJfQorCisJaWYgKCF2cV9oYXNfZGVzY3ModnEpKSB7CisJCWxlbiA9IHJlYWQoc29jay0+
dnNzX2Nvbm5fZmQsIGR1bW15YnVmLCBzaXplb2YoZHVtbXlidWYpKTsKKwkJdnFfZW5kY2hhaW5z
KHZxLCAxKTsKKwkJaWYgKGxlbiA9PSAwKQorCQkJZ290byBjbG9zZTsKKworCQlyZXR1cm47CisJ
fQorCisJZG8geworCQluID0gdnFfZ2V0Y2hhaW4odnEsICZpZHgsICZpb3YsIDEsIE5VTEwpOwor
CQlsZW4gPSByZWFkdihzb2NrLT52c3NfY29ubl9mZCwgJmlvdiwgbik7CisKKwkJaWYgKGxlbiA9
PSAwIHx8IChsZW4gPCAwICYmIGVycm5vID09IEVXT1VMREJMT0NLKSkgeworCQkJdnFfcmV0Y2hh
aW4odnEpOworCQkJdnFfZW5kY2hhaW5zKHZxLCAwKTsKKwkJCWlmIChsZW4gPT0gMCkKKwkJCQln
b3RvIGNsb3NlOworCisJCQlyZXR1cm47CisJCX0KKworCQl2cV9yZWxjaGFpbih2cSwgaWR4LCBs
ZW4pOworCX0gd2hpbGUgKHZxX2hhc19kZXNjcyh2cSkpOworCisJdnFfZW5kY2hhaW5zKHZxLCAx
KTsKKworY2xvc2U6CisJbWV2ZW50X2RlbGV0ZV9jbG9zZShzb2NrLT52c3NfY29ubl9ldnApOwor
CXNvY2stPnZzc19jb25uX2ZkID0gLTE7CisJc29jay0+dnNzX29wZW4gPSBmYWxzZTsKK30KKwor
c3RhdGljIHZvaWQKK3BjaV92dGNvbl9zb2NrX3R4KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqcG9y
dCwgdm9pZCAqYXJnLCBzdHJ1Y3QgaW92ZWMgKmlvdiwKKyAgICBpbnQgbmlvdikKK3sKKwlzdHJ1
Y3QgcGNpX3Z0Y29uX3NvY2sgKnNvY2s7CisJaW50IHJldDsKKworCXNvY2sgPSAoc3RydWN0IHBj
aV92dGNvbl9zb2NrICopYXJnOworCisJaWYgKHNvY2stPnZzc19jb25uX2ZkID09IC0xKQorCQly
ZXR1cm47CisKKwlyZXQgPSB3cml0ZXYoc29jay0+dnNzX2Nvbm5fZmQsIGlvdiwgbmlvdik7CisK
KwlpZiAocmV0IDwgMCAmJiBlcnJubyAhPSBFV09VTERCTE9DSykgeworCQltZXZlbnRfZGVsZXRl
X2Nsb3NlKHNvY2stPnZzc19jb25uX2V2cCk7CisJCXNvY2stPnZzc19jb25uX2ZkID0gLTE7CisJ
CXNvY2stPnZzc19vcGVuID0gZmFsc2U7CisJfQorfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29u
X2NvbnRyb2xfdHgoc3RydWN0IHBjaV92dGNvbl9wb3J0ICpwb3J0LCB2b2lkICphcmcsIHN0cnVj
dCBpb3ZlYyAqaW92LAorICAgIGludCBuaW92KQoreworCXN0cnVjdCBwY2lfdnRjb25fc29mdGMg
KnNjOworCXN0cnVjdCBwY2lfdnRjb25fcG9ydCAqdG1wOworCXN0cnVjdCBwY2lfdnRjb25fY29u
dHJvbCByZXNwLCAqY3RybDsKKwlpbnQgaTsKKworCWFzc2VydChuaW92ID09IDEpOworCisJc2Mg
PSBwb3J0LT52c3Bfc2M7CisJY3RybCA9IChzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wgKilpb3Yt
Pmlvdl9iYXNlOworCisJc3dpdGNoIChjdHJsLT5ldmVudCkgeworCWNhc2UgVlRDT05fREVWSUNF
X1JFQURZOgorCQkvKiBzZXQgcG9ydCByZWFkeSBldmVudHMgZm9yIHJlZ2lzdGVyZWQgcG9ydHMg
Ki8KKwkJZm9yIChpID0gMDsgaSA8IFZUQ09OX01BWFBPUlRTOyBpKyspIHsKKwkJCXRtcCA9ICZz
Yy0+dnNjX3BvcnRzW2ldOworCQkJaWYgKHRtcC0+dnNwX2VuYWJsZWQpCisJCQkJcGNpX3Z0Y29u
X2Fubm91bmNlX3BvcnQodG1wKTsKKwkJfQorCQlicmVhazsKKworCWNhc2UgVlRDT05fUE9SVF9S
RUFEWToKKwkJaWYgKGN0cmwtPmlkID49IHNjLT52c2NfbnBvcnRzKSB7CisJCQlXUFJJTlRGKCgi
VlRDT05fUE9SVF9SRUFEWSBldmVudCBmb3IgdW5rbm93biBwb3J0ICVkXG4iLAorCQkJICAgIGN0
cmwtPmlkKSk7CisJCQlyZXR1cm47CisJCX0KKworCQl0bXAgPSAmc2MtPnZzY19wb3J0c1tjdHJs
LT5pZF07CisJCWlmICh0bXAtPnZzcF9jb25zb2xlKSB7CisJCQlyZXNwLmV2ZW50ID0gVlRDT05f
Q09OU09MRV9QT1JUOworCQkJcmVzcC5pZCA9IGN0cmwtPmlkOworCQkJcmVzcC52YWx1ZSA9IDE7
CisJCQlwY2lfdnRjb25fY29udHJvbF9zZW5kKHNjLCAmcmVzcCwgTlVMTCwgMCk7CisJCX0KKwkJ
YnJlYWs7CisJfQorfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX2Fubm91bmNlX3BvcnQoc3Ry
dWN0IHBjaV92dGNvbl9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBwY2lfdnRjb25fY29udHJvbCBl
dmVudDsKKworCWV2ZW50LmlkID0gcG9ydC0+dnNwX2lkOworCWV2ZW50LmV2ZW50ID0gVlRDT05f
REVWSUNFX0FERDsKKwlldmVudC52YWx1ZSA9IDE7CisJcGNpX3Z0Y29uX2NvbnRyb2xfc2VuZChw
b3J0LT52c3Bfc2MsICZldmVudCwgTlVMTCwgMCk7CisKKwlldmVudC5ldmVudCA9IFZUQ09OX1BP
UlRfTkFNRTsKKwlwY2lfdnRjb25fY29udHJvbF9zZW5kKHBvcnQtPnZzcF9zYywgJmV2ZW50LCBw
b3J0LT52c3BfbmFtZSwKKwkgICAgc3RybGVuKHBvcnQtPnZzcF9uYW1lKSk7Cit9CisKK3N0YXRp
YyB2b2lkCitwY2lfdnRjb25fb3Blbl9wb3J0KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqcG9ydCwg
Ym9vbCBvcGVuKQoreworCXN0cnVjdCBwY2lfdnRjb25fY29udHJvbCBldmVudDsKKworCWV2ZW50
LmlkID0gcG9ydC0+dnNwX2lkOworCWV2ZW50LmV2ZW50ID0gVlRDT05fUE9SVF9PUEVOOworCWV2
ZW50LnZhbHVlID0gKGludClvcGVuOworCXBjaV92dGNvbl9jb250cm9sX3NlbmQocG9ydC0+dnNw
X3NjLCAmZXZlbnQsIE5VTEwsIDApOworfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX2NvbnRy
b2xfc2VuZChzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYywKKyAgICBzdHJ1Y3QgcGNpX3Z0Y29u
X2NvbnRyb2wgKmN0cmwsIGNvbnN0IHZvaWQgKnBheWxvYWQsIHNpemVfdCBsZW4pCit7CisJc3Ry
dWN0IHZxdWV1ZV9pbmZvICp2cTsKKwlzdHJ1Y3QgaW92ZWMgaW92OworCXVpbnQxNl90IGlkeDsK
KwlpbnQgbjsKKworCXZxID0gcGNpX3Z0Y29uX3BvcnRfdG9fdnEoJnNjLT52c2NfY29udHJvbF9w
b3J0LCB0cnVlKTsKKworCWlmICghdnFfaGFzX2Rlc2NzKHZxKSkKKwkJcmV0dXJuOworCisJbiA9
IHZxX2dldGNoYWluKHZxLCAmaWR4LCAmaW92LCAxLCBOVUxMKTsKKworCWFzc2VydChuID09IDEp
OworCisJbWVtY3B5KGlvdi5pb3ZfYmFzZSwgY3RybCwgc2l6ZW9mKHN0cnVjdCBwY2lfdnRjb25f
Y29udHJvbCkpOworCWlmIChwYXlsb2FkICE9IE5VTEwgJiYgbGVuID4gMCkKKwkJbWVtY3B5KGlv
di5pb3ZfYmFzZSArIHNpemVvZihzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wpLAorCQkgICAgIHBh
eWxvYWQsIGxlbik7CisKKwl2cV9yZWxjaGFpbih2cSwgaWR4LCBzaXplb2Yoc3RydWN0IHBjaV92
dGNvbl9jb250cm9sKSArIGxlbik7CisJdnFfZW5kY2hhaW5zKHZxLCAxKTsKK30KKyAgICAKKwor
c3RhdGljIHZvaWQKK3BjaV92dGNvbl9ub3RpZnlfdHgodm9pZCAqdnNjLCBzdHJ1Y3QgdnF1ZXVl
X2luZm8gKnZxKQoreworCXN0cnVjdCBwY2lfdnRjb25fc29mdGMgKnNjOworCXN0cnVjdCBwY2lf
dnRjb25fcG9ydCAqcG9ydDsKKwlzdHJ1Y3QgaW92ZWMgaW92WzFdOworCXVpbnQxNl90IGlkeCwg
bjsKKwl1aW50MTZfdCBmbGFnc1s4XTsKKworCXNjID0gdnNjOworCXBvcnQgPSBwY2lfdnRjb25f
dnFfdG9fcG9ydChzYywgdnEpOworCisJd2hpbGUgKHZxX2hhc19kZXNjcyh2cSkpIHsKKwkJbiA9
IHZxX2dldGNoYWluKHZxLCAmaWR4LCBpb3YsIDEsIGZsYWdzKTsKKwkJaWYgKHBvcnQgIT0gTlVM
TCkKKwkJCXBvcnQtPnZzcF9jYihwb3J0LCBwb3J0LT52c3BfYXJnLCBpb3YsIDEpOworCisJCS8q
CisJCSAqIFJlbGVhc2UgdGhpcyBjaGFpbiBhbmQgaGFuZGxlIG1vcmUKKwkJICovCisJCXZxX3Jl
bGNoYWluKHZxLCBpZHgsIDApOworCX0KKwl2cV9lbmRjaGFpbnModnEsIDEpOwkvKiBHZW5lcmF0
ZSBpbnRlcnJ1cHQgaWYgYXBwcm9wcmlhdGUuICovCit9CisKK3N0YXRpYyB2b2lkCitwY2lfdnRj
b25fbm90aWZ5X3J4KHZvaWQgKnZzYywgc3RydWN0IHZxdWV1ZV9pbmZvICp2cSkKK3sKKwlzdHJ1
Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYzsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQ7CisK
KwlzYyA9IHZzYzsKKwlwb3J0ID0gcGNpX3Z0Y29uX3ZxX3RvX3BvcnQoc2MsIHZxKTsKKworCWlm
ICghcG9ydC0+dnNwX3J4X3JlYWR5KSB7CisJCXBvcnQtPnZzcF9yeF9yZWFkeSA9IDE7CisJCXZx
LT52cV91c2VkLT52dV9mbGFncyB8PSBWUklOR19VU0VEX0ZfTk9fTk9USUZZOworCX0KK30KKwor
c3RhdGljIGludAorcGNpX3Z0Y29uX2luaXQoc3RydWN0IHZtY3R4ICpjdHgsIHN0cnVjdCBwY2lf
ZGV2aW5zdCAqcGksIGNoYXIgKm9wdHMpCit7CisJc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2M7
CisJY2hhciAqcG9ydG5hbWUgPSBOVUxMOworCWNoYXIgKnBvcnRwYXRoID0gTlVMTDsKKwljaGFy
ICpvcHQ7CisJaW50IGk7CQorCisJc2MgPSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBwY2lfdnRj
b25fc29mdGMpKTsKKwlzYy0+dnNjX2NvbmZpZyA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IHBj
aV92dGNvbl9jb25maWcpKTsKKwlzYy0+dnNjX2NvbmZpZy0+bWF4X25yX3BvcnRzID0gVlRDT05f
TUFYUE9SVFM7CisJc2MtPnZzY19jb25maWctPmNvbHMgPSA4MDsKKwlzYy0+dnNjX2NvbmZpZy0+
cm93cyA9IDI1OyAKKworCXZpX3NvZnRjX2xpbmt1cCgmc2MtPnZzY192cywgJnZ0Y29uX3ZpX2Nv
bnN0cywgc2MsIHBpLCBzYy0+dnNjX3F1ZXVlcyk7CisJc2MtPnZzY192cy52c19tdHggPSAmc2Mt
PnZzY19tdHg7CisKKwlmb3IgKGkgPSAwOyBpIDwgVlRDT05fTUFYUTsgaSsrKSB7CisJCXNjLT52
c2NfcXVldWVzW2ldLnZxX3FzaXplID0gVlRDT05fUklOR1NaOworCQlzYy0+dnNjX3F1ZXVlc1tp
XS52cV9ub3RpZnkgPSBpICUgMiA9PSAwCisJCSAgICA/IHBjaV92dGNvbl9ub3RpZnlfcngKKwkJ
ICAgIDogcGNpX3Z0Y29uX25vdGlmeV90eDsKKwl9CisKKwkvKiBpbml0aWFsaXplIGNvbmZpZyBz
cGFjZSAqLworCXBjaV9zZXRfY2ZnZGF0YTE2KHBpLCBQQ0lSX0RFVklDRSwgVklSVElPX0RFVl9D
T05TT0xFKTsKKwlwY2lfc2V0X2NmZ2RhdGExNihwaSwgUENJUl9WRU5ET1IsIFZJUlRJT19WRU5E
T1IpOworCXBjaV9zZXRfY2ZnZGF0YTgocGksIFBDSVJfQ0xBU1MsIFBDSUNfU0lNUExFQ09NTSk7
CisJcGNpX3NldF9jZmdkYXRhMTYocGksIFBDSVJfU1VCREVWXzAsIFZJUlRJT19UWVBFX0NPTlNP
TEUpOworCXBjaV9zZXRfY2ZnZGF0YTE2KHBpLCBQQ0lSX1NVQlZFTkRfMCwgVklSVElPX1ZFTkRP
Uik7CisKKwlpZiAodmlfaW50cl9pbml0KCZzYy0+dnNjX3ZzLCAxLCBmYnNkcnVuX3ZpcnRpb19t
c2l4KCkpKQorCQlyZXR1cm4gKDEpOworCXZpX3NldF9pb19iYXIoJnNjLT52c2NfdnMsIDApOwor
CisJLyogY3JlYXRlIGNvbnRyb2wgcG9ydCAqLworCXNjLT52c2NfY29udHJvbF9wb3J0LnZzcF9z
YyA9IHNjOworCXNjLT52c2NfY29udHJvbF9wb3J0LnZzcF90eHEgPSAyOworCXNjLT52c2NfY29u
dHJvbF9wb3J0LnZzcF9yeHEgPSAzOworCXNjLT52c2NfY29udHJvbF9wb3J0LnZzcF9jYiA9IHBj
aV92dGNvbl9jb250cm9sX3R4OworCXNjLT52c2NfY29udHJvbF9wb3J0LnZzcF9lbmFibGVkID0g
dHJ1ZTsKKworCXdoaWxlICgob3B0ID0gc3Ryc2VwKCZvcHRzLCAiLCIpKSAhPSBOVUxMKSB7CisJ
CXBvcnRuYW1lID0gc3Ryc2VwKCZvcHQsICI9Iik7CisJCXBvcnRwYXRoID0gc3RyZHVwKG9wdCk7
CisKKwkJLyogY3JlYXRlIHBvcnQgKi8KKwkJaWYgKHBjaV92dGNvbl9zb2NrX2FkZChzYywgcG9y
dG5hbWUsIHBvcnRwYXRoKSA8IDApIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiY2Fubm90IGNyZWF0
ZSBwb3J0ICVzOiAlc1xuIiwKKwkJCSAgICBwb3J0bmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJ
CXJldHVybiAoMSk7CisJCX0KKwl9CisKKwlyZXR1cm4gKDApOworfQorCitzdHJ1Y3QgcGNpX2Rl
dmVtdSBwY2lfZGVfdmNvbiA9IHsKKwkucGVfZW11ID0JInZpcnRpby1jb25zb2xlIiwKKwkucGVf
aW5pdCA9CXBjaV92dGNvbl9pbml0LAorCS5wZV9iYXJ3cml0ZSA9CXZpX3BjaV93cml0ZSwKKwku
cGVfYmFycmVhZCA9CXZpX3BjaV9yZWFkCit9OworUENJX0VNVUxfU0VUKHBjaV9kZV92Y29uKTsK
ZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZlL3ZpcnRpby5oIGIvdXNyLnNiaW4vYmh5dmUvdmly
dGlvLmgKLS0tIGEvdXNyLnNiaW4vYmh5dmUvdmlydGlvLmgKKysrIGIvdXNyLnNiaW4vYmh5dmUv
dmlydGlvLmgKQEAgLTIxMCw2ICsyMTAsNyBAQAogI2RlZmluZQlWSVJUSU9fREVWX05FVAkJMHgx
MDAwCiAjZGVmaW5lCVZJUlRJT19ERVZfQkxPQ0sJMHgxMDAxCiAjZGVmaW5lCVZJUlRJT19ERVZf
UkFORE9NCTB4MTAwMgorI2RlZmluZQlWSVJUSU9fREVWX0NPTlNPTEUJMHgxMDAzCiAKIC8qCiAg
KiBQQ0kgY29uZmlnIHNwYWNlIGNvbnN0YW50cy4KZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZl
L01ha2VmaWxlIGIvdXNyLnNiaW4vYmh5dmUvTWFrZWZpbGUKLS0tIGEvdXNyLnNiaW4vYmh5dmUv
TWFrZWZpbGUKKysrIGIvdXNyLnNiaW4vYmh5dmUvTWFrZWZpbGUKQEAgLTM2LDYgKzM2LDcgQEAK
IAlwY2lfbHBjLmMJCVwKIAlwY2lfcGFzc3RocnUuYwkJXAogCXBjaV92aXJ0aW9fYmxvY2suYwlc
CisJcGNpX3ZpcnRpb19jb25zb2xlLmMJXAogCXBjaV92aXJ0aW9fbmV0LmMJXAogCXBjaV92aXJ0
aW9fcm5kLmMJXAogCXBjaV91YXJ0LmMJCVwKCg==


--b1_ea5a0acf9106a50c75a405537bb56328--



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