Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Feb 2016 07:16:56 +0000
From:      Phabricator <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] [Closed] D5275: hyperv/hn: Split RX ring data structure out of softc
Message-ID:  <6aecfb79e7a58796cf1bef2ba7e43f55@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-vvrzzurifi3ornziedve-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-vvrzzurifi3ornziedve-req@FreeBSD.org>

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

--b1_6aecfb79e7a58796cf1bef2ba7e43f55
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: 8bit

This revision was automatically updated to reflect the committed changes.
Closed by commit rS295744: hyperv/hn: Split RX ring data structure out of softc (authored by sephe).

CHANGED PRIOR TO COMMIT
  https://reviews.freebsd.org/D5275?vs=13287&id=13402#toc

REPOSITORY
  rS FreeBSD src repository

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D5275?vs=13287&id=13402

REVISION DETAIL
  https://reviews.freebsd.org/D5275

AFFECTED FILES
  head/sys/dev/hyperv/netvsc/hv_net_vsc.h
  head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: sepherosa_gmail.com, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com, adrian, network
Cc: freebsd-virtualization-list, freebsd-net-list

--b1_6aecfb79e7a58796cf1bef2ba7e43f55
Content-Type: text/x-patch; charset=utf-8; name="D5275.13402.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D5275.13402.patch"

ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJl
ZWJzZC5jIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKLS0tIGEvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKKysrIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKQEAgLTI3NSwxMiArMjc1LDE2IEBACiBzdGF0aWMgaW50IGhuX2xyb19hY2tjbnRfc3lzY3Rs
KFNZU0NUTF9IQU5ETEVSX0FSR1MpOwogc3RhdGljIGludCBobl90cnVzdF9oY3N1bV9zeXNjdGwo
U1lTQ1RMX0hBTkRMRVJfQVJHUyk7CiBzdGF0aWMgaW50IGhuX3R4X2NoaW1uZXlfc2l6ZV9zeXNj
dGwoU1lTQ1RMX0hBTkRMRVJfQVJHUyk7CitzdGF0aWMgaW50IGhuX3J4X3N0YXRfdWxvbmdfc3lz
Y3RsKFNZU0NUTF9IQU5ETEVSX0FSR1MpOworc3RhdGljIGludCBobl9yeF9zdGF0X3U2NF9zeXNj
dGwoU1lTQ1RMX0hBTkRMRVJfQVJHUyk7CiBzdGF0aWMgaW50IGhuX2NoZWNrX2lwbGVuKGNvbnN0
IHN0cnVjdCBtYnVmICosIGludCk7CiBzdGF0aWMgaW50IGhuX2NyZWF0ZV90eF9yaW5nKHN0cnVj
dCBobl9zb2Z0YyAqc2MpOwogc3RhdGljIHZvaWQgaG5fZGVzdHJveV90eF9yaW5nKHN0cnVjdCBo
bl9zb2Z0YyAqc2MpOwogc3RhdGljIHZvaWQgaG5fc3RhcnRfdGFza2Z1bmModm9pZCAqeHNjLCBp
bnQgcGVuZGluZyk7CiBzdGF0aWMgdm9pZCBobl90eGVvZl90YXNrZnVuYyh2b2lkICp4c2MsIGlu
dCBwZW5kaW5nKTsKIHN0YXRpYyBpbnQgaG5fZW5jYXAoc3RydWN0IGhuX3NvZnRjICosIHN0cnVj
dCBobl90eGRlc2MgKiwgc3RydWN0IG1idWYgKiopOworc3RhdGljIHZvaWQgaG5fY3JlYXRlX3J4
X2RhdGEoc3RydWN0IGhuX3NvZnRjICpzYyk7CitzdGF0aWMgdm9pZCBobl9kZXN0cm95X3J4X2Rh
dGEoc3RydWN0IGhuX3NvZnRjICpzYyk7CiAKIHN0YXRpYyBpbnQKIGhuX2lmbWVkaWFfdXBkKHN0
cnVjdCBpZm5ldCAqaWZwIF9fdW51c2VkKQpAQCAtMzUyLDExICszNTYsNiBAQAogI2lmIF9fRnJl
ZUJTRF92ZXJzaW9uID49IDExMDAwNDUKIAlpbnQgdHNvX21heGxlbjsKICNlbmRpZgotI2lmIGRl
ZmluZWQoSU5FVCkgfHwgZGVmaW5lZChJTkVUNikKLSNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSAx
MTAwMDk1Ci0JaW50IGxyb2VudF9jbnQ7Ci0jZW5kaWYKLSNlbmRpZgogCiAJc2MgPSBkZXZpY2Vf
Z2V0X3NvZnRjKGRldik7CiAJaWYgKHNjID09IE5VTEwpIHsKQEAgLTM2NywxMiArMzY2LDYgQEAK
IAlzYy0+aG5fdW5pdCA9IHVuaXQ7CiAJc2MtPmhuX2RldiA9IGRldjsKIAlzYy0+aG5fZGlyZWN0
X3R4X3NpemUgPSBobl9kaXJlY3RfdHhfc2l6ZTsKLQlpZiAoaG5fdHJ1c3RfaG9zdHRjcCkKLQkJ
c2MtPmhuX3RydXN0X2hjc3VtIHw9IEhOX1RSVVNUX0hDU1VNX1RDUDsKLQlpZiAoaG5fdHJ1c3Rf
aG9zdHVkcCkKLQkJc2MtPmhuX3RydXN0X2hjc3VtIHw9IEhOX1RSVVNUX0hDU1VNX1VEUDsKLQlp
ZiAoaG5fdHJ1c3RfaG9zdGlwKQotCQlzYy0+aG5fdHJ1c3RfaGNzdW0gfD0gSE5fVFJVU1RfSENT
VU1fSVA7CiAKIAlpZiAoaG5fdHhfdGFza3EgPT0gTlVMTCkgewogCQlzYy0+aG5fdHhfdGFza3Eg
PSB0YXNrcXVldWVfY3JlYXRlX2Zhc3QoImhuX3R4IiwgTV9XQUlUT0ssCkBAIC0zOTYsNiArMzg5
LDggQEAKIAlpZnAgPSBzYy0+aG5faWZwID0gaWZfYWxsb2MoSUZUX0VUSEVSKTsKIAlpZnAtPmlm
X3NvZnRjID0gc2M7CiAKKwlobl9jcmVhdGVfcnhfZGF0YShzYyk7CisKIAlpZl9pbml0bmFtZShp
ZnAsIGRldmljZV9nZXRfbmFtZShkZXYpLCBkZXZpY2VfZ2V0X3VuaXQoZGV2KSk7CiAJaWZwLT5p
Zl9kdW5pdCA9IHVuaXQ7CiAJaWZwLT5pZl9kbmFtZSA9IE5FVFZTQ19ERVZOQU1FOwpAQCAtNDQx
LDIyICs0MzYsNiBAQAogCQlzYy0+aG5fY2FycmllciA9IDE7CiAJfQogCi0jaWYgZGVmaW5lZChJ
TkVUKSB8fCBkZWZpbmVkKElORVQ2KQotI2lmIF9fRnJlZUJTRF92ZXJzaW9uID49IDExMDAwOTUK
LQlscm9lbnRfY250ID0gaG5fbHJvX2VudHJ5X2NvdW50OwotCWlmIChscm9lbnRfY250IDwgVENQ
X0xST19FTlRSSUVTKQotCQlscm9lbnRfY250ID0gVENQX0xST19FTlRSSUVTOwotCXRjcF9scm9f
aW5pdF9hcmdzKCZzYy0+aG5fbHJvLCBpZnAsIGxyb2VudF9jbnQsIDApOwotCWRldmljZV9wcmlu
dGYoZGV2LCAiTFJPOiBlbnRyeSBjb3VudCAlZFxuIiwgbHJvZW50X2NudCk7Ci0jZWxzZQotCXRj
cF9scm9faW5pdCgmc2MtPmhuX2xybyk7Ci0JLyogRHJpdmVyIHByaXZhdGUgTFJPIHNldHRpbmdz
ICovCi0Jc2MtPmhuX2xyby5pZnAgPSBpZnA7Ci0jZW5kaWYKLQlzYy0+aG5fbHJvLmxyb19sZW5n
dGhfbGltID0gSE5fTFJPX0xFTkxJTV9ERUY7Ci0Jc2MtPmhuX2xyby5scm9fYWNrY250X2xpbSA9
IEhOX0xST19BQ0tDTlRfREVGOwotI2VuZGlmCS8qIElORVQgfHwgSU5FVDYgKi8KLQogI2lmIF9f
RnJlZUJTRF92ZXJzaW9uID49IDExMDAwNDUKIAl0c29fbWF4bGVuID0gaG5fdHNvX21heGxlbjsK
IAlpZiAodHNvX21heGxlbiA8PSAwIHx8IHRzb19tYXhsZW4gPiBJUF9NQVhQQUNLRVQpCkBAIC00
OTEsNDQgKzQ3MCw2IEBACiAJY3R4ID0gZGV2aWNlX2dldF9zeXNjdGxfY3R4KGRldik7CiAJY2hp
bGQgPSBTWVNDVExfQ0hJTERSRU4oZGV2aWNlX2dldF9zeXNjdGxfdHJlZShkZXYpKTsKIAotCVNZ
U0NUTF9BRERfVTY0KGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJvX3F1ZXVlZCIsCi0JICAgIENU
TEZMQUdfUlcsICZzYy0+aG5fbHJvLmxyb19xdWV1ZWQsIDAsICJMUk8gcXVldWVkIik7Ci0JU1lT
Q1RMX0FERF9VNjQoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJscm9fZmx1c2hlZCIsCi0JICAgIENU
TEZMQUdfUlcsICZzYy0+aG5fbHJvLmxyb19mbHVzaGVkLCAwLCAiTFJPIGZsdXNoZWQiKTsKLQlT
WVNDVExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJvX3RyaWVkIiwKLQkgICAg
Q1RMRkxBR19SVywgJnNjLT5obl9scm9fdHJpZWQsICIjIG9mIExSTyB0cmllcyIpOwotCVNZU0NU
TF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImxyb19sZW5ndGhfbGltIiwKLQkgICAg
Q1RMVFlQRV9VSU5UIHwgQ1RMRkxBR19SVywgc2MsIDAsIGhuX2xyb19sZW5saW1fc3lzY3RsLCAi
SVUiLAotCSAgICAiTWF4ICMgb2YgZGF0YSBieXRlcyB0byBiZSBhZ2dyZWdhdGVkIGJ5IExSTyIp
OwotCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImxyb19hY2tjbnRfbGlt
IiwKLQkgICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywgMCwgaG5fbHJvX2Fja2NudF9z
eXNjdGwsICJJIiwKLQkgICAgIk1heCAjIG9mIEFDS3MgdG8gYmUgYWdncmVnYXRlZCBieSBMUk8i
KTsKLQlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJ0cnVzdF9ob3N0dGNw
IiwKLQkgICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywgSE5fVFJVU1RfSENTVU1fVENQ
LAotCSAgICBobl90cnVzdF9oY3N1bV9zeXNjdGwsICJJIiwKLQkgICAgIlRydXN0IHRjcCBzZWdl
bWVudCB2ZXJpZmljYXRpb24gb24gaG9zdCBzaWRlLCAiCi0JICAgICJ3aGVuIGNzdW0gaW5mbyBp
cyBtaXNzaW5nIik7Ci0JU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAidHJ1
c3RfaG9zdHVkcCIsCi0JICAgIENUTFRZUEVfSU5UIHwgQ1RMRkxBR19SVywgc2MsIEhOX1RSVVNU
X0hDU1VNX1VEUCwKLQkgICAgaG5fdHJ1c3RfaGNzdW1fc3lzY3RsLCAiSSIsCi0JICAgICJUcnVz
dCB1ZHAgZGF0YWdyYW0gdmVyaWZpY2F0aW9uIG9uIGhvc3Qgc2lkZSwgIgotCSAgICAid2hlbiBj
c3VtIGluZm8gaXMgbWlzc2luZyIpOwotCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURf
QVVUTywgInRydXN0X2hvc3RpcCIsCi0JICAgIENUTFRZUEVfSU5UIHwgQ1RMRkxBR19SVywgc2Ms
IEhOX1RSVVNUX0hDU1VNX0lQLAotCSAgICBobl90cnVzdF9oY3N1bV9zeXNjdGwsICJJIiwKLQkg
ICAgIlRydXN0IGlwIHBhY2tldCB2ZXJpZmljYXRpb24gb24gaG9zdCBzaWRlLCAiCi0JICAgICJ3
aGVuIGNzdW0gaW5mbyBpcyBtaXNzaW5nIik7Ci0JU1lTQ1RMX0FERF9VTE9ORyhjdHgsIGNoaWxk
LCBPSURfQVVUTywgImNzdW1faXAiLAotCSAgICBDVExGTEFHX1JXLCAmc2MtPmhuX2NzdW1faXAs
ICJSWENTVU0gSVAiKTsKLQlTWVNDVExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAi
Y3N1bV90Y3AiLAotCSAgICBDVExGTEFHX1JXLCAmc2MtPmhuX2NzdW1fdGNwLCAiUlhDU1VNIFRD
UCIpOwotCVNZU0NUTF9BRERfVUxPTkcoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3VtX3VkcCIs
Ci0JICAgIENUTEZMQUdfUlcsICZzYy0+aG5fY3N1bV91ZHAsICJSWENTVU0gVURQIik7Ci0JU1lT
Q1RMX0FERF9VTE9ORyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImNzdW1fdHJ1c3RlZCIsCi0JICAg
IENUTEZMQUdfUlcsICZzYy0+aG5fY3N1bV90cnVzdGVkLAotCSAgICAiIyBvZiBwYWNrZXRzIHRo
YXQgd2UgdHJ1c3QgaG9zdCdzIGNzdW0gdmVyaWZpY2F0aW9uIik7Ci0JU1lTQ1RMX0FERF9VTE9O
RyhjdHgsIGNoaWxkLCBPSURfQVVUTywgInNtYWxsX3BrdHMiLAotCSAgICBDVExGTEFHX1JXLCAm
c2MtPmhuX3NtYWxsX3BrdHMsICIjIG9mIHNtYWxsIHBhY2tldHMgcmVjZWl2ZWQiKTsKIAlTWVND
VExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibm9fdHhkZXNjcyIsCiAJICAgIENU
TEZMQUdfUlcsICZzYy0+aG5fbm9fdHhkZXNjcywgIiMgb2YgdGltZXMgc2hvcnQgb2YgVFggZGVz
Y3MiKTsKIAlTWVNDVExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAic2VuZF9mYWls
ZWQiLApAQCAtNTk2LDkgKzUzNyw3IEBACiAJCXRhc2txdWV1ZV9mcmVlKHNjLT5obl90eF90YXNr
cSk7CiAKIAlpZm1lZGlhX3JlbW92ZWFsbCgmc2MtPmhuX21lZGlhKTsKLSNpZiBkZWZpbmVkKElO
RVQpIHx8IGRlZmluZWQoSU5FVDYpCi0JdGNwX2xyb19mcmVlKCZzYy0+aG5fbHJvKTsKLSNlbmRp
ZgorCWhuX2Rlc3Ryb3lfcnhfZGF0YShzYyk7CiAJaG5fZGVzdHJveV90eF9yaW5nKHNjKTsKIAog
CXJldHVybiAoMCk7CkBAIC03NDYsNyArNjg1LDggQEAKIHsKIAlzdHJ1Y3QgaG5fc29mdGMgKnNj
ID0gZGV2aWNlX2dldF9zb2Z0YyhkZXZpY2VfY3R4LT5kZXZpY2UpOwogI2lmIGRlZmluZWQoSU5F
VCkgfHwgZGVmaW5lZChJTkVUNikKLQlzdHJ1Y3QgbHJvX2N0cmwgKmxybyA9ICZzYy0+aG5fbHJv
OworCXN0cnVjdCBobl9yeF9yaW5nICpyeHIgPSAmc2MtPmhuX3J4X3JpbmdbMF07IC8qIFRPRE86
IHZSU1MgKi8KKwlzdHJ1Y3QgbHJvX2N0cmwgKmxybyA9ICZyeHItPmhuX2xybzsKIAlzdHJ1Y3Qg
bHJvX2VudHJ5ICpxdWV1ZWQ7CiAKIAl3aGlsZSAoKHF1ZXVlZCA9IFNMSVNUX0ZJUlNUKCZscm8t
Pmxyb19hY3RpdmUpKSAhPSBOVUxMKSB7CkBAIC0xMTYyLDEwICsxMTAyLDEwIEBACiBuZXR2c2Nf
cmVjdihzdHJ1Y3QgaHZfZGV2aWNlICpkZXZpY2VfY3R4LCBuZXR2c2NfcGFja2V0ICpwYWNrZXQs
CiAgICAgcm5kaXNfdGNwX2lwX2NzdW1faW5mbyAqY3N1bV9pbmZvKQogewotCWhuX3NvZnRjX3Qg
KnNjID0gKGhuX3NvZnRjX3QgKilkZXZpY2VfZ2V0X3NvZnRjKGRldmljZV9jdHgtPmRldmljZSk7
CisJc3RydWN0IGhuX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2aWNlX2N0eC0+ZGV2
aWNlKTsKKwlzdHJ1Y3QgaG5fcnhfcmluZyAqcnhyID0gJnNjLT5obl9yeF9yaW5nWzBdOyAvKiBU
T0RPOiB2UlNTICovCiAJc3RydWN0IG1idWYgKm1fbmV3OwogCXN0cnVjdCBpZm5ldCAqaWZwOwot
CWRldmljZV90IGRldiA9IGRldmljZV9jdHgtPmRldmljZTsKIAlpbnQgc2l6ZSwgZG9fbHJvID0g
MCwgZG9fY3N1bSA9IDE7CiAKIAlpZiAoc2MgPT0gTlVMTCkgewpAQCAtMTE5MCw3ICsxMTMwLDcg
QEAKIAkJbWVtY3B5KG10b2QobV9uZXcsIHZvaWQgKiksIHBhY2tldC0+ZGF0YSwKIAkJICAgIHBh
Y2tldC0+dG90X2RhdGFfYnVmX2xlbik7CiAJCW1fbmV3LT5tX3BrdGhkci5sZW4gPSBtX25ldy0+
bV9sZW4gPSBwYWNrZXQtPnRvdF9kYXRhX2J1Zl9sZW47Ci0JCXNjLT5obl9zbWFsbF9wa3RzKys7
CisJCXJ4ci0+aG5fc21hbGxfcGt0cysrOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIEdldCBhbiBt
YnVmIHdpdGggYSBjbHVzdGVyLiAgRm9yIHBhY2tldHMgMksgb3IgbGVzcywKQEAgLTEyMDYsNyAr
MTE0Niw3IEBACiAKIAkJbV9uZXcgPSBtX2dldGpjbChNX05PV0FJVCwgTVRfREFUQSwgTV9QS1RI
RFIsIHNpemUpOwogCQlpZiAobV9uZXcgPT0gTlVMTCkgewotCQkJZGV2aWNlX3ByaW50ZihkZXYs
ICJhbGxvYyBtYnVmIGZhaWxlZC5cbiIpOworCQkJaWZfcHJpbnRmKGlmcCwgImFsbG9jIG1idWYg
ZmFpbGVkLlxuIik7CiAJCQlyZXR1cm4gKDApOwogCQl9CiAKQEAgLTEyMjMsNyArMTE2Myw3IEBA
CiAJCWlmIChjc3VtX2luZm8tPnJlY2VpdmUuaXBfY3N1bV9zdWNjZWVkZWQgJiYgZG9fY3N1bSkg
ewogCQkJbV9uZXctPm1fcGt0aGRyLmNzdW1fZmxhZ3MgfD0KIAkJCSAgICAoQ1NVTV9JUF9DSEVD
S0VEIHwgQ1NVTV9JUF9WQUxJRCk7Ci0JCQlzYy0+aG5fY3N1bV9pcCsrOworCQkJcnhyLT5obl9j
c3VtX2lwKys7CiAJCX0KIAogCQkvKiBUQ1AvVURQIGNzdW0gb2ZmbG9hZCAqLwpAQCAtMTIzMyw5
ICsxMTczLDkgQEAKIAkJCSAgICAoQ1NVTV9EQVRBX1ZBTElEIHwgQ1NVTV9QU0VVRE9fSERSKTsK
IAkJCW1fbmV3LT5tX3BrdGhkci5jc3VtX2RhdGEgPSAweGZmZmY7CiAJCQlpZiAoY3N1bV9pbmZv
LT5yZWNlaXZlLnRjcF9jc3VtX3N1Y2NlZWRlZCkKLQkJCQlzYy0+aG5fY3N1bV90Y3ArKzsKKwkJ
CQlyeHItPmhuX2NzdW1fdGNwKys7CiAJCQllbHNlCi0JCQkJc2MtPmhuX2NzdW1fdWRwKys7CisJ
CQkJcnhyLT5obl9jc3VtX3VkcCsrOwogCQl9CiAKIAkJaWYgKGNzdW1faW5mby0+cmVjZWl2ZS5p
cF9jc3VtX3N1Y2NlZWRlZCAmJgpAQCAtMTI2Nyw4ICsxMjA3LDkgQEAKIAkJCXByID0gaG5fY2hl
Y2tfaXBsZW4obV9uZXcsIGhvZmYpOwogCQkJaWYgKHByID09IElQUFJPVE9fVENQKSB7CiAJCQkJ
aWYgKGRvX2NzdW0gJiYKLQkJCQkgICAgKHNjLT5obl90cnVzdF9oY3N1bSAmIEhOX1RSVVNUX0hD
U1VNX1RDUCkpIHsKLQkJCQkJc2MtPmhuX2NzdW1fdHJ1c3RlZCsrOworCQkJCSAgICAocnhyLT5o
bl90cnVzdF9oY3N1bSAmCisJCQkJICAgICBITl9UUlVTVF9IQ1NVTV9UQ1ApKSB7CisJCQkJCXJ4
ci0+aG5fY3N1bV90cnVzdGVkKys7CiAJCQkJCW1fbmV3LT5tX3BrdGhkci5jc3VtX2ZsYWdzIHw9
CiAJCQkJCSAgIChDU1VNX0lQX0NIRUNLRUQgfCBDU1VNX0lQX1ZBTElEIHwKIAkJCQkJICAgIENT
VU1fREFUQV9WQUxJRCB8IENTVU1fUFNFVURPX0hEUik7CkBAIC0xMjc4LDE2ICsxMjE5LDE3IEBA
CiAJCQkJZG9fbHJvID0gMTsKIAkJCX0gZWxzZSBpZiAocHIgPT0gSVBQUk9UT19VRFApIHsKIAkJ
CQlpZiAoZG9fY3N1bSAmJgotCQkJCSAgICAoc2MtPmhuX3RydXN0X2hjc3VtICYgSE5fVFJVU1Rf
SENTVU1fVURQKSkgewotCQkJCQlzYy0+aG5fY3N1bV90cnVzdGVkKys7CisJCQkJICAgIChyeHIt
PmhuX3RydXN0X2hjc3VtICYKKwkJCQkgICAgIEhOX1RSVVNUX0hDU1VNX1VEUCkpIHsKKwkJCQkJ
cnhyLT5obl9jc3VtX3RydXN0ZWQrKzsKIAkJCQkJbV9uZXctPm1fcGt0aGRyLmNzdW1fZmxhZ3Mg
fD0KIAkJCQkJICAgKENTVU1fSVBfQ0hFQ0tFRCB8IENTVU1fSVBfVkFMSUQgfAogCQkJCQkgICAg
Q1NVTV9EQVRBX1ZBTElEIHwgQ1NVTV9QU0VVRE9fSERSKTsKIAkJCQkJbV9uZXctPm1fcGt0aGRy
LmNzdW1fZGF0YSA9IDB4ZmZmZjsKIAkJCQl9CiAJCQl9IGVsc2UgaWYgKHByICE9IElQUFJPVE9f
RE9ORSAmJiBkb19jc3VtICYmCi0JCQkgICAgKHNjLT5obl90cnVzdF9oY3N1bSAmIEhOX1RSVVNU
X0hDU1VNX0lQKSkgewotCQkJCXNjLT5obl9jc3VtX3RydXN0ZWQrKzsKKwkJCSAgICAocnhyLT5o
bl90cnVzdF9oY3N1bSAmIEhOX1RSVVNUX0hDU1VNX0lQKSkgeworCQkJCXJ4ci0+aG5fY3N1bV90
cnVzdGVkKys7CiAJCQkJbV9uZXctPm1fcGt0aGRyLmNzdW1fZmxhZ3MgfD0KIAkJCQkgICAgKENT
VU1fSVBfQ0hFQ0tFRCB8IENTVU1fSVBfVkFMSUQpOwogCQkJfQpAQCAtMTMwOSwxMCArMTI1MSwx
MCBAQAogCiAJaWYgKChpZnAtPmlmX2NhcGVuYWJsZSAmIElGQ0FQX0xSTykgJiYgZG9fbHJvKSB7
CiAjaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2KQotCQlzdHJ1Y3QgbHJvX2N0cmwg
KmxybyA9ICZzYy0+aG5fbHJvOworCQlzdHJ1Y3QgbHJvX2N0cmwgKmxybyA9ICZyeHItPmhuX2xy
bzsKIAogCQlpZiAobHJvLT5scm9fY250KSB7Ci0JCQlzYy0+aG5fbHJvX3RyaWVkKys7CisJCQly
eHItPmhuX2xyb190cmllZCsrOwogCQkJaWYgKHRjcF9scm9fcngobHJvLCBtX25ldywgMCkgPT0g
MCkgewogCQkJCS8qIERPTkUhICovCiAJCQkJcmV0dXJuIDA7CkBAIC0xMzkyLDggKzEzMzQsMTcg
QEAKIAkJICogTWFrZSBzdXJlIHRoYXQgTFJPIGFnZ3JlZ2F0aW9uIGxlbmd0aCBsaW1pdCBpcyBz
dGlsbAogCQkgKiB2YWxpZCwgYWZ0ZXIgdGhlIE1UVSBjaGFuZ2UuCiAJCSAqLwotCQlpZiAoc2Mt
PmhuX2xyby5scm9fbGVuZ3RoX2xpbSA8IEhOX0xST19MRU5MSU1fTUlOKGlmcCkpCi0JCQlzYy0+
aG5fbHJvLmxyb19sZW5ndGhfbGltID0gSE5fTFJPX0xFTkxJTV9NSU4oaWZwKTsKKwkJTlZfTE9D
SyhzYyk7CisJCWlmIChzYy0+aG5fcnhfcmluZ1swXS5obl9scm8ubHJvX2xlbmd0aF9saW0gPAor
CQkgICAgSE5fTFJPX0xFTkxJTV9NSU4oaWZwKSkgeworCQkJaW50IGk7CisKKwkJCWZvciAoaSA9
IDA7IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkgeworCQkJCXNjLT5obl9yeF9yaW5nW2ld
LmhuX2xyby5scm9fbGVuZ3RoX2xpbSA9CisJCQkJICAgIEhOX0xST19MRU5MSU1fTUlOKGlmcCk7
CisJCQl9CisJCX0KKwkJTlZfVU5MT0NLKHNjKTsKIAogCQlkbyB7CiAJCQlOVl9MT0NLKHNjKTsK
QEAgLTE3MDUsMzIgKzE2NTYsMzUgQEAKIHsKIAlzdHJ1Y3QgaG5fc29mdGMgKnNjID0gYXJnMTsK
IAl1bnNpZ25lZCBpbnQgbGVubGltOwotCWludCBlcnJvcjsKKwlpbnQgZXJyb3IsIGk7CiAKLQls
ZW5saW0gPSBzYy0+aG5fbHJvLmxyb19sZW5ndGhfbGltOworCWxlbmxpbSA9IHNjLT5obl9yeF9y
aW5nWzBdLmhuX2xyby5scm9fbGVuZ3RoX2xpbTsKIAllcnJvciA9IHN5c2N0bF9oYW5kbGVfaW50
KG9pZHAsICZsZW5saW0sIDAsIHJlcSk7CiAJaWYgKGVycm9yIHx8IHJlcS0+bmV3cHRyID09IE5V
TEwpCiAJCXJldHVybiBlcnJvcjsKIAogCWlmIChsZW5saW0gPCBITl9MUk9fTEVOTElNX01JTihz
Yy0+aG5faWZwKSB8fAogCSAgICBsZW5saW0gPiBUQ1BfTFJPX0xFTkdUSF9NQVgpCiAJCXJldHVy
biBFSU5WQUw7CiAKLQlzYy0+aG5fbHJvLmxyb19sZW5ndGhfbGltID0gbGVubGltOworCU5WX0xP
Q0soc2MpOworCWZvciAoaSA9IDA7IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkKKwkJc2Mt
PmhuX3J4X3JpbmdbaV0uaG5fbHJvLmxyb19sZW5ndGhfbGltID0gbGVubGltOworCU5WX1VOTE9D
SyhzYyk7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQKIGhuX2xyb19hY2tjbnRfc3lzY3Rs
KFNZU0NUTF9IQU5ETEVSX0FSR1MpCiB7CiAJc3RydWN0IGhuX3NvZnRjICpzYyA9IGFyZzE7Ci0J
aW50IGFja2NudCwgZXJyb3I7CisJaW50IGFja2NudCwgZXJyb3IsIGk7CiAKIAkvKgogCSAqIGxy
b19hY2tjbnRfbGltIGlzIGFwcGVuZCBjb3VudCBsaW1pdCwKIAkgKiArMSB0byB0dXJuIGl0IGlu
dG8gYWdncmVnYXRpb24gbGltaXQuCiAJICovCi0JYWNrY250ID0gc2MtPmhuX2xyby5scm9fYWNr
Y250X2xpbSArIDE7CisJYWNrY250ID0gc2MtPmhuX3J4X3JpbmdbMF0uaG5fbHJvLmxyb19hY2tj
bnRfbGltICsgMTsKIAllcnJvciA9IHN5c2N0bF9oYW5kbGVfaW50KG9pZHAsICZhY2tjbnQsIDAs
IHJlcSk7CiAJaWYgKGVycm9yIHx8IHJlcS0+bmV3cHRyID09IE5VTEwpCiAJCXJldHVybiBlcnJv
cjsKQEAgLTE3NDIsMzAgKzE2OTYsMzggQEAKIAkgKiBDb252ZXJ0IGFnZ3JlZ2F0aW9uIGxpbWl0
IGJhY2sgdG8gYXBwZW5kCiAJICogY291bnQgbGltaXQuCiAJICovCi0Jc2MtPmhuX2xyby5scm9f
YWNrY250X2xpbSA9IGFja2NudCAtIDE7CisJLS1hY2tjbnQ7CisJTlZfTE9DSyhzYyk7CisJZm9y
IChpID0gMDsgaSA8IHNjLT5obl9yeF9yaW5nX2NudDsgKytpKQorCQlzYy0+aG5fcnhfcmluZ1tp
XS5obl9scm8ubHJvX2Fja2NudF9saW0gPSBhY2tjbnQ7CisJTlZfVU5MT0NLKHNjKTsKIAlyZXR1
cm4gMDsKIH0KIAogc3RhdGljIGludAogaG5fdHJ1c3RfaGNzdW1fc3lzY3RsKFNZU0NUTF9IQU5E
TEVSX0FSR1MpCiB7CiAJc3RydWN0IGhuX3NvZnRjICpzYyA9IGFyZzE7CiAJaW50IGhjc3VtID0g
YXJnMjsKLQlpbnQgb24sIGVycm9yOworCWludCBvbiwgZXJyb3IsIGk7CiAKIAlvbiA9IDA7Ci0J
aWYgKHNjLT5obl90cnVzdF9oY3N1bSAmIGhjc3VtKQorCWlmIChzYy0+aG5fcnhfcmluZ1swXS5o
bl90cnVzdF9oY3N1bSAmIGhjc3VtKQogCQlvbiA9IDE7CiAKIAllcnJvciA9IHN5c2N0bF9oYW5k
bGVfaW50KG9pZHAsICZvbiwgMCwgcmVxKTsKIAlpZiAoZXJyb3IgfHwgcmVxLT5uZXdwdHIgPT0g
TlVMTCkKIAkJcmV0dXJuIGVycm9yOwogCiAJTlZfTE9DSyhzYyk7Ci0JaWYgKG9uKQotCQlzYy0+
aG5fdHJ1c3RfaGNzdW0gfD0gaGNzdW07Ci0JZWxzZQotCQlzYy0+aG5fdHJ1c3RfaGNzdW0gJj0g
fmhjc3VtOworCWZvciAoaSA9IDA7IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkgeworCQlz
dHJ1Y3QgaG5fcnhfcmluZyAqcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCisJCWlmIChvbikK
KwkJCXJ4ci0+aG5fdHJ1c3RfaGNzdW0gfD0gaGNzdW07CisJCWVsc2UKKwkJCXJ4ci0+aG5fdHJ1
c3RfaGNzdW0gJj0gfmhjc3VtOworCX0KIAlOVl9VTkxPQ0soc2MpOwogCXJldHVybiAwOwogfQpA
QCAtMTc5MCw2ICsxNzUyLDU4IEBACiB9CiAKIHN0YXRpYyBpbnQKK2huX3J4X3N0YXRfdWxvbmdf
c3lzY3RsKFNZU0NUTF9IQU5ETEVSX0FSR1MpCit7CisJc3RydWN0IGhuX3NvZnRjICpzYyA9IGFy
ZzE7CisJaW50IG9mcyA9IGFyZzIsIGksIGVycm9yOworCXN0cnVjdCBobl9yeF9yaW5nICpyeHI7
CisJdV9sb25nIHN0YXQ7CisKKwlzdGF0ID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgc2MtPmhuX3J4
X3JpbmdfY250OyArK2kpIHsKKwkJcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCQlzdGF0ICs9
ICooKHVfbG9uZyAqKSgodWludDhfdCAqKXJ4ciArIG9mcykpOworCX0KKworCWVycm9yID0gc3lz
Y3RsX2hhbmRsZV9sb25nKG9pZHAsICZzdGF0LCAwLCByZXEpOworCWlmIChlcnJvciB8fCByZXEt
Pm5ld3B0ciA9PSBOVUxMKQorCQlyZXR1cm4gZXJyb3I7CisKKwkvKiBaZXJvIG91dCB0aGlzIHN0
YXQuICovCisJZm9yIChpID0gMDsgaSA8IHNjLT5obl9yeF9yaW5nX2NudDsgKytpKSB7CisJCXJ4
ciA9ICZzYy0+aG5fcnhfcmluZ1tpXTsKKwkJKigodV9sb25nICopKCh1aW50OF90ICopcnhyICsg
b2ZzKSkgPSAwOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAoraG5fcnhfc3RhdF91
NjRfc3lzY3RsKFNZU0NUTF9IQU5ETEVSX0FSR1MpCit7CisJc3RydWN0IGhuX3NvZnRjICpzYyA9
IGFyZzE7CisJaW50IG9mcyA9IGFyZzIsIGksIGVycm9yOworCXN0cnVjdCBobl9yeF9yaW5nICpy
eHI7CisJdWludDY0X3Qgc3RhdDsKKworCXN0YXQgPSAwOworCWZvciAoaSA9IDA7IGkgPCBzYy0+
aG5fcnhfcmluZ19jbnQ7ICsraSkgeworCQlyeHIgPSAmc2MtPmhuX3J4X3JpbmdbaV07CisJCXN0
YXQgKz0gKigodWludDY0X3QgKikoKHVpbnQ4X3QgKilyeHIgKyBvZnMpKTsKKwl9CisKKwllcnJv
ciA9IHN5c2N0bF9oYW5kbGVfNjQob2lkcCwgJnN0YXQsIDAsIHJlcSk7CisJaWYgKGVycm9yIHx8
IHJlcS0+bmV3cHRyID09IE5VTEwpCisJCXJldHVybiBlcnJvcjsKKworCS8qIFplcm8gb3V0IHRo
aXMgc3RhdC4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgc2MtPmhuX3J4X3JpbmdfY250OyArK2kpIHsK
KwkJcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCQkqKCh1aW50NjRfdCAqKSgodWludDhfdCAq
KXJ4ciArIG9mcykpID0gMDsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKIGhuX2No
ZWNrX2lwbGVuKGNvbnN0IHN0cnVjdCBtYnVmICptLCBpbnQgaG9mZikKIHsKIAljb25zdCBzdHJ1
Y3QgaXAgKmlwOwpAQCAtMTg3Niw2ICsxODkwLDEzNiBAQAogCSpwYWRkciA9IHNlZ3MtPmRzX2Fk
ZHI7CiB9CiAKK3N0YXRpYyB2b2lkCitobl9jcmVhdGVfcnhfZGF0YShzdHJ1Y3QgaG5fc29mdGMg
KnNjKQoreworCXN0cnVjdCBzeXNjdGxfb2lkX2xpc3QgKmNoaWxkOworCXN0cnVjdCBzeXNjdGxf
Y3R4X2xpc3QgKmN0eDsKKwlkZXZpY2VfdCBkZXYgPSBzYy0+aG5fZGV2OworI2lmIGRlZmluZWQo
SU5FVCkgfHwgZGVmaW5lZChJTkVUNikKKyNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSAxMTAwMDk1
CisJaW50IGxyb2VudF9jbnQ7CisjZW5kaWYKKyNlbmRpZgorCWludCBpOworCisJc2MtPmhuX3J4
X3JpbmdfY250ID0gMTsgLyogVE9ETzogdlJTUyAqLworCXNjLT5obl9yeF9yaW5nID0gbWFsbG9j
KHNpemVvZihzdHJ1Y3QgaG5fcnhfcmluZykgKiBzYy0+aG5fcnhfcmluZ19jbnQsCisJICAgIE1f
TkVUVlNDLCBNX1dBSVRPSyB8IE1fWkVSTyk7CisKKyNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmlu
ZWQoSU5FVDYpCisjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gMTEwMDA5NQorCWxyb2VudF9jbnQg
PSBobl9scm9fZW50cnlfY291bnQ7CisJaWYgKGxyb2VudF9jbnQgPCBUQ1BfTFJPX0VOVFJJRVMp
CisJCWxyb2VudF9jbnQgPSBUQ1BfTFJPX0VOVFJJRVM7CisJZGV2aWNlX3ByaW50ZihkZXYsICJM
Uk86IGVudHJ5IGNvdW50ICVkXG4iLCBscm9lbnRfY250KTsKKyNlbmRpZgorI2VuZGlmCS8qIElO
RVQgfHwgSU5FVDYgKi8KKworCWZvciAoaSA9IDA7IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsr
aSkgeworCQlzdHJ1Y3QgaG5fcnhfcmluZyAqcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCisJ
CWlmIChobl90cnVzdF9ob3N0dGNwKQorCQkJcnhyLT5obl90cnVzdF9oY3N1bSB8PSBITl9UUlVT
VF9IQ1NVTV9UQ1A7CisJCWlmIChobl90cnVzdF9ob3N0dWRwKQorCQkJcnhyLT5obl90cnVzdF9o
Y3N1bSB8PSBITl9UUlVTVF9IQ1NVTV9VRFA7CisJCWlmIChobl90cnVzdF9ob3N0aXApCisJCQly
eHItPmhuX3RydXN0X2hjc3VtIHw9IEhOX1RSVVNUX0hDU1VNX0lQOworCisJCS8qCisJCSAqIElu
aXRpYWxpemUgTFJPLgorCQkgKi8KKyNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmluZWQoSU5FVDYp
CisjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gMTEwMDA5NQorCQl0Y3BfbHJvX2luaXRfYXJncygm
cnhyLT5obl9scm8sIHNjLT5obl9pZnAsIGxyb2VudF9jbnQsIDApOworI2Vsc2UKKwkJdGNwX2xy
b19pbml0KCZyeHItPmhuX2xybyk7CisJCXJ4ci0+aG5fbHJvLmlmcCA9IHNjLT5obl9pZnA7Cisj
ZW5kaWYKKwkJcnhyLT5obl9scm8ubHJvX2xlbmd0aF9saW0gPSBITl9MUk9fTEVOTElNX0RFRjsK
KwkJcnhyLT5obl9scm8ubHJvX2Fja2NudF9saW0gPSBITl9MUk9fQUNLQ05UX0RFRjsKKyNlbmRp
ZgkvKiBJTkVUIHx8IElORVQ2ICovCisJfQorCisJY3R4ID0gZGV2aWNlX2dldF9zeXNjdGxfY3R4
KGRldik7CisJY2hpbGQgPSBTWVNDVExfQ0hJTERSRU4oZGV2aWNlX2dldF9zeXNjdGxfdHJlZShk
ZXYpKTsKKworCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImxyb19xdWV1
ZWQiLAorCSAgICBDVExUWVBFX1U2NCB8IENUTEZMQUdfUlcsIHNjLAorCSAgICBfX29mZnNldG9m
KHN0cnVjdCBobl9yeF9yaW5nLCBobl9scm8ubHJvX3F1ZXVlZCksCisJICAgIGhuX3J4X3N0YXRf
dTY0X3N5c2N0bCwgIkxVIiwgIkxSTyBxdWV1ZWQiKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBj
aGlsZCwgT0lEX0FVVE8sICJscm9fZmx1c2hlZCIsCisJICAgIENUTFRZUEVfVTY0IHwgQ1RMRkxB
R19SVywgc2MsCisJICAgIF9fb2Zmc2V0b2Yoc3RydWN0IGhuX3J4X3JpbmcsIGhuX2xyby5scm9f
Zmx1c2hlZCksCisJICAgIGhuX3J4X3N0YXRfdTY0X3N5c2N0bCwgIkxVIiwgIkxSTyBmbHVzaGVk
Iik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJvX3RyaWVkIiwK
KwkgICAgQ1RMVFlQRV9VTE9ORyB8IENUTEZMQUdfUlcsIHNjLAorCSAgICBfX29mZnNldG9mKHN0
cnVjdCBobl9yeF9yaW5nLCBobl9scm9fdHJpZWQpLAorCSAgICBobl9yeF9zdGF0X3Vsb25nX3N5
c2N0bCwgIkxVIiwgIiMgb2YgTFJPIHRyaWVzIik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hp
bGQsIE9JRF9BVVRPLCAibHJvX2xlbmd0aF9saW0iLAorCSAgICBDVExUWVBFX1VJTlQgfCBDVExG
TEFHX1JXLCBzYywgMCwgaG5fbHJvX2xlbmxpbV9zeXNjdGwsICJJVSIsCisJICAgICJNYXggIyBv
ZiBkYXRhIGJ5dGVzIHRvIGJlIGFnZ3JlZ2F0ZWQgYnkgTFJPIik7CisJU1lTQ1RMX0FERF9QUk9D
KGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJvX2Fja2NudF9saW0iLAorCSAgICBDVExUWVBFX0lO
VCB8IENUTEZMQUdfUlcsIHNjLCAwLCBobl9scm9fYWNrY250X3N5c2N0bCwgIkkiLAorCSAgICAi
TWF4ICMgb2YgQUNLcyB0byBiZSBhZ2dyZWdhdGVkIGJ5IExSTyIpOworCVNZU0NUTF9BRERfUFJP
QyhjdHgsIGNoaWxkLCBPSURfQVVUTywgInRydXN0X2hvc3R0Y3AiLAorCSAgICBDVExUWVBFX0lO
VCB8IENUTEZMQUdfUlcsIHNjLCBITl9UUlVTVF9IQ1NVTV9UQ1AsCisJICAgIGhuX3RydXN0X2hj
c3VtX3N5c2N0bCwgIkkiLAorCSAgICAiVHJ1c3QgdGNwIHNlZ2VtZW50IHZlcmlmaWNhdGlvbiBv
biBob3N0IHNpZGUsICIKKwkgICAgIndoZW4gY3N1bSBpbmZvIGlzIG1pc3NpbmciKTsKKwlTWVND
VExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJ0cnVzdF9ob3N0dWRwIiwKKwkgICAg
Q1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywgSE5fVFJVU1RfSENTVU1fVURQLAorCSAgICBo
bl90cnVzdF9oY3N1bV9zeXNjdGwsICJJIiwKKwkgICAgIlRydXN0IHVkcCBkYXRhZ3JhbSB2ZXJp
ZmljYXRpb24gb24gaG9zdCBzaWRlLCAiCisJICAgICJ3aGVuIGNzdW0gaW5mbyBpcyBtaXNzaW5n
Iik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAidHJ1c3RfaG9zdGlw
IiwKKwkgICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywgSE5fVFJVU1RfSENTVU1fSVAs
CisJICAgIGhuX3RydXN0X2hjc3VtX3N5c2N0bCwgIkkiLAorCSAgICAiVHJ1c3QgaXAgcGFja2V0
IHZlcmlmaWNhdGlvbiBvbiBob3N0IHNpZGUsICIKKwkgICAgIndoZW4gY3N1bSBpbmZvIGlzIG1p
c3NpbmciKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3VtX2lw
IiwKKwkgICAgQ1RMVFlQRV9VTE9ORyB8IENUTEZMQUdfUlcsIHNjLAorCSAgICBfX29mZnNldG9m
KHN0cnVjdCBobl9yeF9yaW5nLCBobl9jc3VtX2lwKSwKKwkgICAgaG5fcnhfc3RhdF91bG9uZ19z
eXNjdGwsICJMVSIsICJSWENTVU0gSVAiKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwg
T0lEX0FVVE8sICJjc3VtX3RjcCIsCisJICAgIENUTFRZUEVfVUxPTkcgfCBDVExGTEFHX1JXLCBz
YywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmluZywgaG5fY3N1bV90Y3ApLAorCSAg
ICBobl9yeF9zdGF0X3Vsb25nX3N5c2N0bCwgIkxVIiwgIlJYQ1NVTSBUQ1AiKTsKKwlTWVNDVExf
QUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3VtX3VkcCIsCisJICAgIENUTFRZUEVf
VUxPTkcgfCBDVExGTEFHX1JXLCBzYywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmlu
ZywgaG5fY3N1bV91ZHApLAorCSAgICBobl9yeF9zdGF0X3Vsb25nX3N5c2N0bCwgIkxVIiwgIlJY
Q1NVTSBVRFAiKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3Vt
X3RydXN0ZWQiLAorCSAgICBDVExUWVBFX1VMT05HIHwgQ1RMRkxBR19SVywgc2MsCisJICAgIF9f
b2Zmc2V0b2Yoc3RydWN0IGhuX3J4X3JpbmcsIGhuX2NzdW1fdHJ1c3RlZCksCisJICAgIGhuX3J4
X3N0YXRfdWxvbmdfc3lzY3RsLCAiTFUiLAorCSAgICAiIyBvZiBwYWNrZXRzIHRoYXQgd2UgdHJ1
c3QgaG9zdCdzIGNzdW0gdmVyaWZpY2F0aW9uIik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hp
bGQsIE9JRF9BVVRPLCAic21hbGxfcGt0cyIsCisJICAgIENUTFRZUEVfVUxPTkcgfCBDVExGTEFH
X1JXLCBzYywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmluZywgaG5fc21hbGxfcGt0
cyksCisJICAgIGhuX3J4X3N0YXRfdWxvbmdfc3lzY3RsLCAiTFUiLCAiIyBvZiBzbWFsbCBwYWNr
ZXRzIHJlY2VpdmVkIik7Cit9CisKK3N0YXRpYyB2b2lkCitobl9kZXN0cm95X3J4X2RhdGEoc3Ry
dWN0IGhuX3NvZnRjICpzYykKK3sKKyNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmluZWQoSU5FVDYp
CisJaW50IGk7CisjZW5kaWYKKworCWlmIChzYy0+aG5fcnhfcmluZ19jbnQgPT0gMCkKKwkJcmV0
dXJuOworCisjaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2KQorCWZvciAoaSA9IDA7
IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkKKwkJdGNwX2xyb19mcmVlKCZzYy0+aG5fcnhf
cmluZ1tpXS5obl9scm8pOworI2VuZGlmCisJZnJlZShzYy0+aG5fcnhfcmluZywgTV9ORVRWU0Mp
OworCXNjLT5obl9yeF9yaW5nID0gTlVMTDsKKworCXNjLT5obl9yeF9yaW5nX2NudCA9IDA7Cit9
CisKIHN0YXRpYyBpbnQKIGhuX2NyZWF0ZV90eF9yaW5nKHN0cnVjdCBobl9zb2Z0YyAqc2MpCiB7
CmRpZmYgLS1naXQgYS9oZWFkL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXRfdnNjLmggYi9o
ZWFkL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXRfdnNjLmgKLS0tIGEvaGVhZC9zeXMvZGV2
L2h5cGVydi9uZXR2c2MvaHZfbmV0X3ZzYy5oCisrKyBiL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0
dnNjL2h2X25ldF92c2MuaApAQCAtOTkzLDYgKzk5MywyNCBAQAogc3RydWN0IGhuX3R4ZGVzYzsK
IFNMSVNUX0hFQUQoaG5fdHhkZXNjX2xpc3QsIGhuX3R4ZGVzYyk7CiAKK3N0cnVjdCBobl9yeF9y
aW5nIHsKKwlzdHJ1Y3QgbHJvX2N0cmwJaG5fbHJvOworCisJLyogVHJ1c3QgY3N1bSB2ZXJpZmlj
YXRpb24gb24gaG9zdCBzaWRlICovCisJaW50CQlobl90cnVzdF9oY3N1bTsJLyogSE5fVFJVU1Rf
SENTVU1fICovCisKKwl1X2xvbmcJCWhuX2NzdW1faXA7CisJdV9sb25nCQlobl9jc3VtX3RjcDsK
Kwl1X2xvbmcJCWhuX2NzdW1fdWRwOworCXVfbG9uZwkJaG5fY3N1bV90cnVzdGVkOworCXVfbG9u
ZwkJaG5fbHJvX3RyaWVkOworCXVfbG9uZwkJaG5fc21hbGxfcGt0czsKK30gX19hbGlnbmVkKENB
Q0hFX0xJTkVfU0laRSk7CisKKyNkZWZpbmUgSE5fVFJVU1RfSENTVU1fSVAJMHgwMDAxCisjZGVm
aW5lIEhOX1RSVVNUX0hDU1VNX1RDUAkweDAwMDIKKyNkZWZpbmUgSE5fVFJVU1RfSENTVU1fVURQ
CTB4MDAwNAorCiAvKgogICogRGV2aWNlLXNwZWNpZmljIHNvZnRjIHN0cnVjdHVyZQogICovCkBA
IC0xMDI5LDI4ICsxMDQ3LDE2IEBACiAJc3RydWN0IHRhc2sJaG5fc3RhcnRfdGFzazsKIAlzdHJ1
Y3QgdGFzawlobl90eGVvZl90YXNrOwogCi0Jc3RydWN0IGxyb19jdHJsCWhuX2xybzsKLQotCS8q
IFRydXN0IGNzdW0gdmVyaWZpY2F0aW9uIG9uIGhvc3Qgc2lkZSAqLwotCWludAkJaG5fdHJ1c3Rf
aGNzdW07CS8qIEhOX1RSVVNUX0hDU1VNXyAqLworCWludAkJaG5fcnhfcmluZ19jbnQ7CisJc3Ry
dWN0IGhuX3J4X3JpbmcgKmhuX3J4X3Jpbmc7CiAKLQl1X2xvbmcJCWhuX2NzdW1faXA7Ci0JdV9s
b25nCQlobl9jc3VtX3RjcDsKLQl1X2xvbmcJCWhuX2NzdW1fdWRwOwotCXVfbG9uZwkJaG5fY3N1
bV90cnVzdGVkOwotCXVfbG9uZwkJaG5fbHJvX3RyaWVkOwotCXVfbG9uZwkJaG5fc21hbGxfcGt0
czsKIAl1X2xvbmcJCWhuX25vX3R4ZGVzY3M7CiAJdV9sb25nCQlobl9zZW5kX2ZhaWxlZDsKIAl1
X2xvbmcJCWhuX3R4ZG1hX2ZhaWxlZDsKIAl1X2xvbmcJCWhuX3R4X2NvbGxhcHNlZDsKIAl1X2xv
bmcJCWhuX3R4X2NoaW1uZXk7CiB9IGhuX3NvZnRjX3Q7CiAKLSNkZWZpbmUgSE5fVFJVU1RfSENT
VU1fSVAJMHgwMDAxCi0jZGVmaW5lIEhOX1RSVVNUX0hDU1VNX1RDUAkweDAwMDIKLSNkZWZpbmUg
SE5fVFJVU1RfSENTVU1fVURQCTB4MDAwNAotCiAvKgogICogRXh0ZXJucwogICovCgo=


--b1_6aecfb79e7a58796cf1bef2ba7e43f55--



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