Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jan 2016 01:41:21 +0000
From:      "sepherosa_gmail.com (Sepherosa Ziehau)" <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] [Updated, 294 lines] D4824: hyperv/hn: Implement LRO
Message-ID:  <c14163bddd8f0cd1f879d08e10e7134d@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-2vc6la7nxrbxz7f6mnl6-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-2vc6la7nxrbxz7f6mnl6-req@FreeBSD.org>

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

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

sepherosa_gmail.com updated this revision to Diff 12098.
sepherosa_gmail.com added a comment.


  Add devclass sysctl for global trust_hosttcp setting.  Suggested-by: delphij

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D4824?vs=12034&id=12098

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

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

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

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

--b1_c14163bddd8f0cd1f879d08e10e7134d
Content-Type: text/x-patch; charset=utf-8; name="D4824.12098.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D4824.12098.patch"

ZGlmZiAtLWdpdCBhL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9ybmRpc19maWx0ZXIuaCBiL3N5
cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9ybmRpc19maWx0ZXIuaAotLS0gYS9zeXMvZGV2L2h5cGVy
di9uZXR2c2MvaHZfcm5kaXNfZmlsdGVyLmgKKysrIGIvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2
X3JuZGlzX2ZpbHRlci5oCkBAIC05OCw2ICs5OCw3IEBACiAKIGludCBodl9yZl9vbl9yZWNlaXZl
KG5ldHZzY19kZXYgKm5ldF9kZXYsCiAgICAgc3RydWN0IGh2X2RldmljZSAqZGV2aWNlLCBuZXR2
c2NfcGFja2V0ICpwa3QpOwordm9pZCBodl9yZl9yZWNlaXZlX3JvbGx1cChuZXR2c2NfZGV2ICpu
ZXRfZGV2KTsKIGludCBodl9yZl9vbl9kZXZpY2VfYWRkKHN0cnVjdCBodl9kZXZpY2UgKmRldmlj
ZSwgdm9pZCAqYWRkaXRsX2luZm8pOwogaW50IGh2X3JmX29uX2RldmljZV9yZW1vdmUoc3RydWN0
IGh2X2RldmljZSAqZGV2aWNlLCBib29sZWFuX3QgZGVzdHJveV9jaGFubmVsKTsKIGludCBodl9y
Zl9vbl9vcGVuKHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSk7CmRpZmYgLS1naXQgYS9zeXMvZGV2
L2h5cGVydi9uZXR2c2MvaHZfcm5kaXNfZmlsdGVyLmMgYi9zeXMvZGV2L2h5cGVydi9uZXR2c2Mv
aHZfcm5kaXNfZmlsdGVyLmMKLS0tIGEvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X3JuZGlzX2Zp
bHRlci5jCisrKyBiL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9ybmRpc19maWx0ZXIuYwpAQCAt
OTYzLDMgKzk2MywxNCBAQAogCXJlcXVlc3QtPmhhbHRfY29tcGxldGVfZmxhZyA9IDE7CiB9CiAK
Ky8qCisgKiBSTkRJUyBmaWx0ZXIgd2hlbiAiYWxsIiByZWNlcHRpb24gaXMgZG9uZQorICovCit2
b2lkCitodl9yZl9yZWNlaXZlX3JvbGx1cChuZXR2c2NfZGV2ICpuZXRfZGV2KQoreworCXJuZGlz
X2RldmljZSAqcm5kaXNfZGV2OworCisJcm5kaXNfZGV2ID0gKHJuZGlzX2RldmljZSAqKW5ldF9k
ZXYtPmV4dGVuc2lvbjsKKwluZXR2c2NfcmVjdl9yb2xsdXAocm5kaXNfZGV2LT5uZXRfZGV2LT5k
ZXYpOworfQpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X3JuZGlzLmggYi9z
eXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfcm5kaXMuaAotLS0gYS9zeXMvZGV2L2h5cGVydi9uZXR2
c2MvaHZfcm5kaXMuaAorKysgYi9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfcm5kaXMuaApAQCAt
MTA0OSw2ICsxMDQ5LDcgQEAKIGludCBuZXR2c2NfcmVjdihzdHJ1Y3QgaHZfZGV2aWNlICpkZXZp
Y2VfY3R4LCAKICAgICBuZXR2c2NfcGFja2V0ICpwYWNrZXQsIAogICAgIHJuZGlzX3RjcF9pcF9j
c3VtX2luZm8gKmNzdW1faW5mbyk7Cit2b2lkIG5ldHZzY19yZWN2X3JvbGx1cChzdHJ1Y3QgaHZf
ZGV2aWNlICpkZXZpY2VfY3R4KTsKIAogdm9pZCogaHZfc2V0X3JwcGlfZGF0YShybmRpc19tc2cg
KnJuZGlzX21lc2csCiAgICAgdWludDMyX3QgcnBwaV9zaXplLApkaWZmIC0tZ2l0IGEvc3lzL2Rl
di9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJlZWJzZC5jIGIvc3lzL2Rldi9oeXBlcnYv
bmV0dnNjL2h2X25ldHZzY19kcnZfZnJlZWJzZC5jCi0tLSBhL3N5cy9kZXYvaHlwZXJ2L25ldHZz
Yy9odl9uZXR2c2NfZHJ2X2ZyZWVic2QuYworKysgYi9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZf
bmV0dnNjX2Rydl9mcmVlYnNkLmMKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlIDxzeXMvcXVl
dWUuaD4KICNpbmNsdWRlIDxzeXMvbG9jay5oPgogI2luY2x1ZGUgPHN5cy9zeC5oPgorI2luY2x1
ZGUgPHN5cy9zeXNjdGwuaD4KIAogI2luY2x1ZGUgPG5ldC9pZi5oPgogI2luY2x1ZGUgPG5ldC9p
Zl9hcnAuaD4KQEAgLTEzOCw2ICsxMzksMTUgQEAKICAgICBDU1VNX0lQX0lTQ1NJfENTVU1fSVA2
X1VEUHxDU1VNX0lQNl9UQ1B8Q1NVTV9JUDZfU0NUUHwJCVwKICAgICBDU1VNX0lQNl9UU098Q1NV
TV9JUDZfSVNDU0kpCiAKKy8qIFhYWCBtb3ZlIHRvIG5ldGluZXQvdGNwX2xyby5oICovCisjZGVm
aW5lIEhOX0xST19ISVdBVF9NQVgJCQkJNjU1MzUKKyNkZWZpbmUgSE5fTFJPX0hJV0FUX0RFRgkJ
CQlITl9MUk9fSElXQVRfTUFYCisvKiBZWVkgMipNVFUgaXMgYSBiaXQgcm91Z2gsIGJ1dCBzaG91
bGQgYmUgZ29vZCBlbm91Z2guICovCisjZGVmaW5lIEhOX0xST19ISVdBVF9NVFVMSU0oaWZwKQkJ
CSgyICogKGlmcCktPmlmX210dSkKKyNkZWZpbmUgSE5fTFJPX0hJV0FUX0lTVkFMSUQoc2MsIGhp
d2F0KQkJCVwKKyAgICAoKGhpd2F0KSA+PSBITl9MUk9fSElXQVRfTVRVTElNKChzYyktPmhuX2lm
cCkgfHwJXAorICAgICAoaGl3YXQpIDw9IEhOX0xST19ISVdBVF9NQVgpCisKIC8qCiAgKiBEYXRh
IHR5cGVzCiAgKi8KQEAgLTE3MSw2ICsxODEsOSBAQAogLyogVGhlIG9uZSBhbmQgb25seSBvbmUg
Ki8KIHN0YXRpYyBzdHJ1Y3QgaHZfbmV0dnNjX2RyaXZlcl9jb250ZXh0IGdfbmV0dnNjX2RydjsK
IAorLyogVHJ1c3QgdGNwIHNlZ2VtZW50cyB2ZXJpZmljYXRpb24gb24gaG9zdCBzaWRlLiAqLwor
c3RhdGljIGludCBobl90cnVzdF9ob3N0dGNwID0gMDsKK1RVTkFCTEVfSU5UKCJkZXYuaG4udHJ1
c3RfaG9zdHRjcCIsICZobl90cnVzdF9ob3N0dGNwKTsKIAogLyoKICAqIEZvcndhcmQgZGVjbGFy
YXRpb25zCkBAIC0xODEsNiArMTk0LDE5IEBACiBzdGF0aWMgaW50ICBobl9pb2N0bChzdHJ1Y3Qg
aWZuZXQgKmlmcCwgdV9sb25nIGNtZCwgY2FkZHJfdCBkYXRhKTsKIHN0YXRpYyBpbnQgIGhuX3N0
YXJ0X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCk7CiBzdGF0aWMgdm9pZCBobl9zdGFydChzdHJ1
Y3QgaWZuZXQgKmlmcCk7CisjaWZkZWYgSE5fTFJPX0hJV0FUCitzdGF0aWMgaW50IGhuX2xyb19o
aXdhdF9zeXNjdGwoU1lTQ1RMX0hBTkRMRVJfQVJHUyk7CisjZW5kaWYKK3N0YXRpYyBpbnQgaG5f
Y2hlY2tfaXBsZW4oY29uc3Qgc3RydWN0IG1idWYgKiwgaW50KTsKKworc3RhdGljIF9faW5saW5l
IHZvaWQKK2huX3NldF9scm9faGl3YXQoc3RydWN0IGhuX3NvZnRjICpzYywgaW50IGhpd2F0KQor
eworCXNjLT5obl9scm9faGl3YXQgPSBoaXdhdDsKKyNpZmRlZiBITl9MUk9fSElXQVQKKwlzYy0+
aG5fbHJvLmxyb19oaXdhdCA9IHNjLT5obl9scm9faGl3YXQ7CisjZW5kaWYKK30KIAogLyoKICAq
IE5ldFZzYyBnZXQgbWVzc2FnZSB0cmFuc3BvcnQgcHJvdG9jb2wgdHlwZSAKQEAgLTMxMCw2ICsz
MzYsOCBAQAogCWhuX3NvZnRjX3QgKnNjOwogCWludCB1bml0ID0gZGV2aWNlX2dldF91bml0KGRl
dik7CiAJc3RydWN0IGlmbmV0ICppZnA7CisJc3RydWN0IHN5c2N0bF9vaWRfbGlzdCAqY2hpbGQ7
CisJc3RydWN0IHN5c2N0bF9jdHhfbGlzdCAqY3R4OwogCWludCByZXQ7CiAKIAluZXR2c2NfaW5p
dCgpOwpAQCAtMzIyLDYgKzM1MCw4IEBACiAJYnplcm8oc2MsIHNpemVvZihobl9zb2Z0Y190KSk7
CiAJc2MtPmhuX3VuaXQgPSB1bml0OwogCXNjLT5obl9kZXYgPSBkZXY7CisJc2MtPmhuX2xyb19o
aXdhdCA9IEhOX0xST19ISVdBVF9ERUY7CisJc2MtPmhuX3RydXN0X2hvc3R0Y3AgPSBobl90cnVz
dF9ob3N0dGNwOwogCiAJTlZfTE9DS19JTklUKHNjLCAiTmV0VlNDTG9jayIpOwogCkBAIC0zNDks
OSArMzc5LDExIEBACiAJICovCiAJaWZwLT5pZl9oZHJsZW4gPSBzaXplb2Yoc3RydWN0IGV0aGVy
X3ZsYW5faGVhZGVyKTsKIAlpZnAtPmlmX2NhcGFiaWxpdGllcyB8PQotCSAgICBJRkNBUF9WTEFO
X0hXVEFHR0lORyB8IElGQ0FQX1ZMQU5fTVRVIHwgSUZDQVBfSFdDU1VNIHwgSUZDQVBfVFNPOwor
CSAgICBJRkNBUF9WTEFOX0hXVEFHR0lORyB8IElGQ0FQX1ZMQU5fTVRVIHwgSUZDQVBfSFdDU1VN
IHwgSUZDQVBfVFNPIHwKKwkgICAgSUZDQVBfTFJPOwogCWlmcC0+aWZfY2FwZW5hYmxlIHw9Ci0J
ICAgIElGQ0FQX1ZMQU5fSFdUQUdHSU5HIHwgSUZDQVBfVkxBTl9NVFUgfCBJRkNBUF9IV0NTVU0g
fCBJRkNBUF9UU087CisJICAgIElGQ0FQX1ZMQU5fSFdUQUdHSU5HIHwgSUZDQVBfVkxBTl9NVFUg
fCBJRkNBUF9IV0NTVU0gfCBJRkNBUF9UU08gfAorCSAgICBJRkNBUF9MUk87CiAJLyoKIAkgKiBP
bmx5IGVuYWJsZSBVRFAgY2hlY2tzdW0gb2ZmbG9hZGluZyB3aGVuIGl0IGlzIG9uIDIwMTJSMiBv
cgogCSAqIGxhdGVyLiBVRFAgY2hlY2tzdW0gb2ZmbG9hZGluZyBkb2Vzbid0IHdvcmsgb24gZWFy
bGllcgpAQCAtMzcyLDggKzQwNCw1OSBAQAogCQlzYy0+aG5fY2FycmllciA9IDE7CiAJfQogCisJ
dGNwX2xyb19pbml0KCZzYy0+aG5fbHJvKTsKKwkvKiBEcml2ZXIgcHJpdmF0ZSBMUk8gc2V0dGlu
Z3MgKi8KKwlzYy0+aG5fbHJvLmlmcCA9IGlmcDsKKyNpZmRlZiBITl9MUk9fSElXQVQKKwlzYy0+
aG5fbHJvLmxyb19oaXdhdCA9IHNjLT5obl9scm9faGl3YXQ7CisjZW5kaWYKKwogCWV0aGVyX2lm
YXR0YWNoKGlmcCwgZGV2aWNlX2luZm8ubWFjX2FkZHIpOwogCisJY3R4ID0gZGV2aWNlX2dldF9z
eXNjdGxfY3R4KGRldik7CisJY2hpbGQgPSBTWVNDVExfQ0hJTERSRU4oZGV2aWNlX2dldF9zeXNj
dGxfdHJlZShkZXYpKTsKKworCVNZU0NUTF9BRERfSU5UKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAi
bHJvX3F1ZXVlZCIsCisJICAgIENUTEZMQUdfUlcsICZzYy0+aG5fbHJvLmxyb19xdWV1ZWQsIDAs
ICJMUk8gcXVldWVkIik7CisJU1lTQ1RMX0FERF9JTlQoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJs
cm9fZmx1c2hlZCIsCisJICAgIENUTEZMQUdfUlcsICZzYy0+aG5fbHJvLmxyb19mbHVzaGVkLCAw
LCAiTFJPIGZsdXNoZWQiKTsKKwlTWVNDVExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRP
LCAibHJvX3RyaWVkIiwKKwkgICAgQ1RMRkxBR19SVywgJnNjLT5obl9scm9fdHJpZWQsICIjIG9m
IExSTyB0cmllcyIpOworI2lmZGVmIEhOX0xST19ISVdBVAorCVNZU0NUTF9BRERfUFJPQyhjdHgs
IGNoaWxkLCBPSURfQVVUTywgImxyb19oaXdhdCIsCisJICAgIENUTFRZUEVfSU5UIHwgQ1RMRkxB
R19SVywgc2MsIDAsIGhuX2xyb19oaXdhdF9zeXNjdGwsCisJICAgICJJIiwgIkxSTyBoaWdoIHdh
dGVybWFyayIpOworI2VuZGlmCisJU1lTQ1RMX0FERF9JTlQoY3R4LCBjaGlsZCwgT0lEX0FVVE8s
ICJ0cnVzdF9ob3N0dGNwIiwKKwkgICAgQ1RMRkxBR19SVywgJnNjLT5obl90cnVzdF9ob3N0dGNw
LCAwLAorCSAgICAiVHJ1c3QgdGNwIHNlZ2VtZW50IHZlcmlmaWNhdGlvbiBvbiBob3N0IHNpZGUs
ICIKKwkgICAgIndoZW4gY3N1bSBpbmZvIGlzIG1pc3NpbmciKTsKKwlTWVNDVExfQUREX1VMT05H
KGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAiY3N1bV9pcCIsCisJICAgIENUTEZMQUdfUlcsICZzYy0+
aG5fY3N1bV9pcCwgIlJYQ1NVTSBJUCIpOworCVNZU0NUTF9BRERfVUxPTkcoY3R4LCBjaGlsZCwg
T0lEX0FVVE8sICJjc3VtX3RjcCIsCisJICAgIENUTEZMQUdfUlcsICZzYy0+aG5fY3N1bV90Y3As
ICJSWENTVU0gVENQIik7CisJU1lTQ1RMX0FERF9VTE9ORyhjdHgsIGNoaWxkLCBPSURfQVVUTywg
ImNzdW1fdHJ1c3RlZCIsCisJICAgIENUTEZMQUdfUlcsICZzYy0+aG5fY3N1bV90cnVzdGVkLAor
CSAgICAiIyBvZiBUQ1Agc2VnZW1lbnRzIHRoYXQgd2UgdHJ1c3QgaG9zdCdzIGNzdW0gdmVyaWZp
Y2F0aW9uIik7CisKKwlpZiAodW5pdCA9PSAwKSB7CisJCXN0cnVjdCBzeXNjdGxfY3R4X2xpc3Qg
KmRjX2N0eDsKKwkJc3RydWN0IHN5c2N0bF9vaWRfbGlzdCAqZGNfY2hpbGQ7CisJCWRldmNsYXNz
X3QgZGM7CisKKwkJLyoKKwkJICogQWRkIHN5c2N0bCBub2RlcyBmb3IgZGV2Y2xhc3MKKwkJICov
CisJCWRjID0gZGV2aWNlX2dldF9kZXZjbGFzcyhkZXYpOworCQlkY19jdHggPSBkZXZjbGFzc19n
ZXRfc3lzY3RsX2N0eChkYyk7CisJCWRjX2NoaWxkID0gU1lTQ1RMX0NISUxEUkVOKGRldmNsYXNz
X2dldF9zeXNjdGxfdHJlZShkYykpOworCisJCVNZU0NUTF9BRERfSU5UKGRjX2N0eCwgZGNfY2hp
bGQsIE9JRF9BVVRPLCAidHJ1c3RfaG9zdHRjcCIsCisJCSAgICBDVExGTEFHX1JELCAmaG5fdHJ1
c3RfaG9zdHRjcCwgMCwKKwkJICAgICJUcnVzdCB0Y3Agc2VnZW1lbnQgdmVyaWZpY2F0aW9uIG9u
IGhvc3Qgc2lkZSwgIgorCQkgICAgIndoZW4gY3N1bSBpbmZvIGlzIG1pc3NpbmcgKGdsb2JhbCBz
ZXR0aW5nKSIpOworCX0KKwogCXJldHVybiAoMCk7CiB9CiAKQEAgLTM4Myw2ICs0NjYsNyBAQAog
c3RhdGljIGludAogbmV0dnNjX2RldGFjaChkZXZpY2VfdCBkZXYpCiB7CisJc3RydWN0IGhuX3Nv
ZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKIAlzdHJ1Y3QgaHZfZGV2aWNlICpodl9k
ZXZpY2UgPSB2bWJ1c19nZXRfZGV2Y3R4KGRldik7IAogCiAJaWYgKGJvb3R2ZXJib3NlKQpAQCAt
NDAxLDYgKzQ4NSw4IEBACiAKIAlodl9yZl9vbl9kZXZpY2VfcmVtb3ZlKGh2X2RldmljZSwgSFZf
UkZfTlZfREVTVFJPWV9DSEFOTkVMKTsKIAorCXRjcF9scm9fZnJlZSgmc2MtPmhuX2xybyk7CisK
IAlyZXR1cm4gKDApOwogfQogCkBAIC04ODcsNyArOTczLDcgQEAKIAlzdHJ1Y3QgbWJ1ZiAqbV9u
ZXc7CiAJc3RydWN0IGlmbmV0ICppZnA7CiAJZGV2aWNlX3QgZGV2ID0gZGV2aWNlX2N0eC0+ZGV2
aWNlOwotCWludCBzaXplOworCWludCBzaXplLCBkb19scm8gPSAwOwogCiAJaWYgKHNjID09IE5V
TEwpIHsKIAkJcmV0dXJuICgwKTsgLyogVE9ETzogS1lTIGhvdyBjYW4gdGhpcyBiZSEgKi8KQEAg
LTkzOCwxNiArMTAyNCw1OCBAQAogCQlpZiAoY3N1bV9pbmZvLT5yZWNlaXZlLmlwX2NzdW1fc3Vj
Y2VlZGVkKSB7CiAJCQltX25ldy0+bV9wa3RoZHIuY3N1bV9mbGFncyB8PQogCQkJICAgIChDU1VN
X0lQX0NIRUNLRUQgfCBDU1VNX0lQX1ZBTElEKTsKKwkJCXNjLT5obl9jc3VtX2lwKys7CiAJCX0K
IAogCQkvKiBUQ1AgY3N1bSBvZmZsb2FkICovCiAJCWlmIChjc3VtX2luZm8tPnJlY2VpdmUudGNw
X2NzdW1fc3VjY2VlZGVkKSB7CiAJCQltX25ldy0+bV9wa3RoZHIuY3N1bV9mbGFncyB8PQogCQkJ
ICAgIChDU1VNX0RBVEFfVkFMSUQgfCBDU1VNX1BTRVVET19IRFIpOwogCQkJbV9uZXctPm1fcGt0
aGRyLmNzdW1fZGF0YSA9IDB4ZmZmZjsKKwkJCXNjLT5obl9jc3VtX3RjcCsrOwogCQl9Ci0JfQog
CisJCWlmIChjc3VtX2luZm8tPnJlY2VpdmUuaXBfY3N1bV9zdWNjZWVkZWQgJiYKKwkJICAgIGNz
dW1faW5mby0+cmVjZWl2ZS50Y3BfY3N1bV9zdWNjZWVkZWQpCisJCQlkb19scm8gPSAxOworCX0g
ZWxzZSB7CisJCWNvbnN0IHN0cnVjdCBldGhlcl9oZWFkZXIgKmVoOworCQl1aW50MTZfdCBldHlw
ZTsKKwkJaW50IGhvZmY7CisKKwkJaG9mZiA9IHNpemVvZigqZWgpOworCQlpZiAobV9uZXctPm1f
bGVuIDwgaG9mZikKKwkJCWdvdG8gc2tpcDsKKwkJZWggPSBtdG9kKG1fbmV3LCBzdHJ1Y3QgZXRo
ZXJfaGVhZGVyICopOworCQlldHlwZSA9IG50b2hzKGVoLT5ldGhlcl90eXBlKTsKKwkJaWYgKGV0
eXBlID09IEVUSEVSVFlQRV9WTEFOKSB7CisJCQljb25zdCBzdHJ1Y3QgZXRoZXJfdmxhbl9oZWFk
ZXIgKmV2bDsKKworCQkJaG9mZiA9IHNpemVvZigqZXZsKTsKKwkJCWlmIChtX25ldy0+bV9sZW4g
PCBob2ZmKQorCQkJCWdvdG8gc2tpcDsKKwkJCWV2bCA9IG10b2QobV9uZXcsIHN0cnVjdCBldGhl
cl92bGFuX2hlYWRlciAqKTsKKwkJCWV0eXBlID0gbnRvaHMoZXZsLT5ldmxfcHJvdG8pOworCQl9
CisKKwkJaWYgKGV0eXBlID09IEVUSEVSVFlQRV9JUCkgeworCQkJaW50IHByOworCisJCQlwciA9
IGhuX2NoZWNrX2lwbGVuKG1fbmV3LCBob2ZmKTsKKwkJCWlmIChwciA9PSBJUFBST1RPX1RDUCkg
eworCQkJCWlmIChzYy0+aG5fdHJ1c3RfaG9zdHRjcCkgeworCQkJCQlzYy0+aG5fY3N1bV90cnVz
dGVkKys7CisJCQkJCW1fbmV3LT5tX3BrdGhkci5jc3VtX2ZsYWdzIHw9CisJCQkJCSAgIChDU1VN
X0lQX0NIRUNLRUQgfCBDU1VNX0lQX1ZBTElEIHwKKwkJCQkJICAgIENTVU1fREFUQV9WQUxJRCB8
IENTVU1fUFNFVURPX0hEUik7CisJCQkJCW1fbmV3LT5tX3BrdGhkci5jc3VtX2RhdGEgPSAweGZm
ZmY7CisJCQkJfQorCQkJCS8qIFJlbHkgb24gU1cgY3N1bSB2ZXJpZmljYXRpb24gdGhvdWdoLi4u
ICovCisJCQkJZG9fbHJvID0gMTsKKwkJCX0KKwkJfQorCX0KK3NraXA6CiAJaWYgKChwYWNrZXQt
PnZsYW5fdGNpICE9IDApICYmCiAJICAgIChpZnAtPmlmX2NhcGVuYWJsZSAmIElGQ0FQX1ZMQU5f
SFdUQUdHSU5HKSAhPSAwKSB7CiAJCW1fbmV3LT5tX3BrdGhkci5ldGhlcl92dGFnID0gcGFja2V0
LT52bGFuX3RjaTsKQEAgLTk2MSwxMiArMTA4OSwzNyBAQAogCiAJaWZfaW5jX2NvdW50ZXIoaWZw
LCBJRkNPVU5URVJfSVBBQ0tFVFMsIDEpOwogCisJaWYgKChpZnAtPmlmX2NhcGVuYWJsZSAmIElG
Q0FQX0xSTykgJiYgZG9fbHJvKSB7CisJCXN0cnVjdCBscm9fY3RybCAqbHJvID0gJnNjLT5obl9s
cm87CisKKwkJaWYgKGxyby0+bHJvX2NudCkgeworCQkJc2MtPmhuX2xyb190cmllZCsrOworCQkJ
aWYgKHRjcF9scm9fcngobHJvLCBtX25ldywgMCkgPT0gMCkgeworCQkJCS8qIERPTkUhICovCisJ
CQkJcmV0dXJuIDA7CisJCQl9CisJCX0KKwl9CisKIAkvKiBXZSdyZSBub3QgaG9sZGluZyB0aGUg
bG9jayBoZXJlLCBzbyBkb24ndCByZWxlYXNlIGl0ICovCiAJKCppZnAtPmlmX2lucHV0KShpZnAs
IG1fbmV3KTsKIAogCXJldHVybiAoMCk7CiB9CiAKK3ZvaWQKK25ldHZzY19yZWN2X3JvbGx1cChz
dHJ1Y3QgaHZfZGV2aWNlICpkZXZpY2VfY3R4KQoreworCWhuX3NvZnRjX3QgKnNjID0gZGV2aWNl
X2dldF9zb2Z0YyhkZXZpY2VfY3R4LT5kZXZpY2UpOworCXN0cnVjdCBscm9fY3RybCAqbHJvID0g
JnNjLT5obl9scm87CisJc3RydWN0IGxyb19lbnRyeSAqcXVldWVkOworCisJd2hpbGUgKChxdWV1
ZWQgPSBTTElTVF9GSVJTVCgmbHJvLT5scm9fYWN0aXZlKSkgIT0gTlVMTCkgeworCQlTTElTVF9S
RU1PVkVfSEVBRCgmbHJvLT5scm9fYWN0aXZlLCBuZXh0KTsKKwkJdGNwX2xyb19mbHVzaChscm8s
IHF1ZXVlZCk7CisJfQorfQorCiAvKgogICogUnVsZXMgZm9yIHVzaW5nIHNjLT50ZW1wX3VudXNh
YmxlOgogICogMS4gIHNjLT50ZW1wX3VudXNhYmxlIGNhbiBvbmx5IGJlIHJlYWQgb3Igd3JpdHRl
biB3aGlsZSBob2xkaW5nIE5WX0xPQ0soKQpAQCAtMTAyMiw3ICsxMTc1LDEzIEBACiAKIAkJLyog
T2J0YWluIGFuZCByZWNvcmQgcmVxdWVzdGVkIE1UVSAqLwogCQlpZnAtPmlmX210dSA9IGlmci0+
aWZyX210dTsKLSAJCQorCQkvKgorCQkgKiBNYWtlIHN1cmUgdGhhdCBMUk8gaGlnaCB3YXRlcm1h
cmsgaXMgc3RpbGwgdmFsaWQsCisJCSAqIGFmdGVyIE1UVSBjaGFuZ2UgKHRoZSAyKk1UVSBsaW1p
dCkuCisJCSAqLworCQlpZiAoIUhOX0xST19ISVdBVF9JU1ZBTElEKHNjLCBzYy0+aG5fbHJvX2hp
d2F0KSkKKwkJCWhuX3NldF9scm9faGl3YXQoc2MsIEhOX0xST19ISVdBVF9NVFVMSU0oaWZwKSk7
CisKIAkJZG8gewogCQkJTlZfTE9DSyhzYyk7CiAJCQlpZiAoIXNjLT50ZW1wX3VudXNhYmxlKSB7
CkBAIC0xMTQ3LDYgKzEzMDYsOCBAQAogCQkJCWlmcC0+aWZfY2FwZW5hYmxlIHw9IElGQ0FQX1JY
Q1NVTTsKIAkJCX0KIAkJfQorCQlpZiAobWFzayAmIElGQ0FQX0xSTykKKwkJCWlmcC0+aWZfY2Fw
ZW5hYmxlIF49IElGQ0FQX0xSTzsKIAogCQlpZiAobWFzayAmIElGQ0FQX1RTTzQpIHsKIAkJCWlm
cC0+aWZfY2FwZW5hYmxlIF49IElGQ0FQX1RTTzQ7CkBAIC0xMjkyLDYgKzE0NTMsMTAyIEBACiB9
CiAjZW5kaWYKIAorI2lmZGVmIEhOX0xST19ISVdBVAorc3RhdGljIGludAoraG5fbHJvX2hpd2F0
X3N5c2N0bChTWVNDVExfSEFORExFUl9BUkdTKQoreworCXN0cnVjdCBobl9zb2Z0YyAqc2MgPSBh
cmcxOworCWludCBoaXdhdCwgZXJyb3I7CisKKwloaXdhdCA9IHNjLT5obl9scm9faGl3YXQ7CisJ
ZXJyb3IgPSBzeXNjdGxfaGFuZGxlX2ludChvaWRwLCAmaGl3YXQsIDAsIHJlcSk7CisJaWYgKGVy
cm9yIHx8IHJlcS0+bmV3cHRyID09IE5VTEwpCisJCXJldHVybiBlcnJvcjsKKworCWlmICghSE5f
TFJPX0hJV0FUX0lTVkFMSUQoc2MsIGhpd2F0KSkKKwkJcmV0dXJuIEVJTlZBTDsKKworCWlmIChz
Yy0+aG5fbHJvX2hpd2F0ICE9IGhpd2F0KQorCQlobl9zZXRfbHJvX2hpd2F0KHNjLCBoaXdhdCk7
CisJcmV0dXJuIDA7Cit9CisjZW5kaWYJLyogSE5fTFJPX0hJV0FUICovCisKK3N0YXRpYyBpbnQK
K2huX2NoZWNrX2lwbGVuKGNvbnN0IHN0cnVjdCBtYnVmICptLCBpbnQgaG9mZikKK3sKKwljb25z
dCBzdHJ1Y3QgaXAgKmlwOworCWludCBsZW4sIGlwaGxlbiwgaXBsZW47CisJY29uc3Qgc3RydWN0
IHRjcGhkciAqdGg7CisJaW50IHRob2ZmOwkJCQkvKiBUQ1AgZGF0YSBvZmZzZXQgKi8KKworCWxl
biA9IGhvZmYgKyBzaXplb2Yoc3RydWN0IGlwKTsKKworCS8qIFRoZSBwYWNrZXQgbXVzdCBiZSBh
dCBsZWFzdCB0aGUgc2l6ZSBvZiBhbiBJUCBoZWFkZXIuICovCisJaWYgKG0tPm1fcGt0aGRyLmxl
biA8IGxlbikKKwkJcmV0dXJuIElQUFJPVE9fRE9ORTsKKworCS8qIFRoZSBmaXhlZCBJUCBoZWFk
ZXIgbXVzdCByZXNpZGUgY29tcGxldGVseSBpbiB0aGUgZmlyc3QgbWJ1Zi4gKi8KKwlpZiAobS0+
bV9sZW4gPCBsZW4pCisJCXJldHVybiBJUFBST1RPX0RPTkU7CisKKwlpcCA9IG10b2RvKG0sIGhv
ZmYpOworCisJLyogQm91bmQgY2hlY2sgdGhlIHBhY2tldCdzIHN0YXRlZCBJUCBoZWFkZXIgbGVu
Z3RoLiAqLworCWlwaGxlbiA9IGlwLT5pcF9obCA8PCAyOworCWlmIChpcGhsZW4gPCBzaXplb2Yo
c3RydWN0IGlwKSkJCS8qIG1pbmltdW0gaGVhZGVyIGxlbmd0aCAqLworCQlyZXR1cm4gSVBQUk9U
T19ET05FOworCisJLyogVGhlIGZ1bGwgSVAgaGVhZGVyIG11c3QgcmVzaWRlIGNvbXBsZXRlbHkg
aW4gdGhlIG9uZSBtYnVmLiAqLworCWlmIChtLT5tX2xlbiA8IGhvZmYgKyBpcGhsZW4pCisJCXJl
dHVybiBJUFBST1RPX0RPTkU7CisKKwlpcGxlbiA9IG50b2hzKGlwLT5pcF9sZW4pOworCisJLyoK
KwkgKiBDaGVjayB0aGF0IHRoZSBhbW91bnQgb2YgZGF0YSBpbiB0aGUgYnVmZmVycyBpcyBhcwor
CSAqIGF0IGxlYXN0IG11Y2ggYXMgdGhlIElQIGhlYWRlciB3b3VsZCBoYXZlIHVzIGV4cGVjdC4K
KwkgKi8KKwlpZiAobS0+bV9wa3RoZHIubGVuIDwgaG9mZiArIGlwbGVuKQorCQlyZXR1cm4gSVBQ
Uk9UT19ET05FOworCisJLyoKKwkgKiBJZ25vcmUgSVAgZnJhZ21lbnRzLgorCSAqLworCWlmIChu
dG9ocyhpcC0+aXBfb2ZmKSAmIChJUF9PRkZNQVNLIHwgSVBfTUYpKQorCQlyZXR1cm4gSVBQUk9U
T19ET05FOworCisJLyoKKwkgKiBUaGUgVENQL0lQIG9yIFVEUC9JUCBoZWFkZXIgbXVzdCBiZSBl
bnRpcmVseSBjb250YWluZWQgd2l0aGluCisJICogdGhlIGZpcnN0IGZyYWdtZW50IG9mIGEgcGFj
a2V0LgorCSAqLworCXN3aXRjaCAoaXAtPmlwX3ApIHsKKwljYXNlIElQUFJPVE9fVENQOgorCQlp
ZiAoaXBsZW4gPCBpcGhsZW4gKyBzaXplb2Yoc3RydWN0IHRjcGhkcikpCisJCQlyZXR1cm4gSVBQ
Uk9UT19ET05FOworCQlpZiAobS0+bV9sZW4gPCBob2ZmICsgaXBobGVuICsgc2l6ZW9mKHN0cnVj
dCB0Y3BoZHIpKQorCQkJcmV0dXJuIElQUFJPVE9fRE9ORTsKKwkJdGggPSAoY29uc3Qgc3RydWN0
IHRjcGhkciAqKSgoY29uc3QgdWludDhfdCAqKWlwICsgaXBobGVuKTsKKwkJdGhvZmYgPSB0aC0+
dGhfb2ZmIDw8IDI7CisJCWlmICh0aG9mZiA8IHNpemVvZihzdHJ1Y3QgdGNwaGRyKSB8fCB0aG9m
ZiArIGlwaGxlbiA+IGlwbGVuKQorCQkJcmV0dXJuIElQUFJPVE9fRE9ORTsKKwkJaWYgKG0tPm1f
bGVuIDwgaG9mZiArIGlwaGxlbiArIHRob2ZmKQorCQkJcmV0dXJuIElQUFJPVE9fRE9ORTsKKwkJ
YnJlYWs7CisJY2FzZSBJUFBST1RPX1VEUDoKKwkJaWYgKGlwbGVuIDwgaXBobGVuICsgc2l6ZW9m
KHN0cnVjdCB1ZHBoZHIpKQorCQkJcmV0dXJuIElQUFJPVE9fRE9ORTsKKwkJaWYgKG0tPm1fbGVu
IDwgaG9mZiArIGlwaGxlbiArIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSkKKwkJCXJldHVybiBJUFBS
T1RPX0RPTkU7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWlmIChpcGxlbiA8IGlwaGxlbikKKwkJ
CXJldHVybiBJUFBST1RPX0RPTkU7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gaXAtPmlwX3A7Cit9
CisKIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3QgbmV0dnNjX21ldGhvZHNbXSA9IHsKICAgICAgICAg
LyogRGV2aWNlIGludGVyZmFjZSAqLwogICAgICAgICBERVZNRVRIT0QoZGV2aWNlX3Byb2JlLCAg
ICAgICAgIG5ldHZzY19wcm9iZSksCmRpZmYgLS1naXQgYS9zeXMvZGV2L2h5cGVydi9uZXR2c2Mv
aHZfbmV0X3ZzYy5oIGIvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25ldF92c2MuaAotLS0gYS9z
eXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0X3ZzYy5oCisrKyBiL3N5cy9kZXYvaHlwZXJ2L25l
dHZzYy9odl9uZXRfdnNjLmgKQEAgLTQzLDYgKzQzLDggQEAKICNpbmNsdWRlIDxzeXMvbG9jay5o
PgogI2luY2x1ZGUgPHN5cy9tYWxsb2MuaD4KICNpbmNsdWRlIDxzeXMvc3guaD4KKyNpbmNsdWRl
IDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8bmV0aW5ldC90Y3BfbHJvLmg+CiAKICNpbmNsdWRl
IDxkZXYvaHlwZXJ2L2luY2x1ZGUvaHlwZXJ2Lmg+CiAKQEAgLTk5Myw2ICs5OTUsMTcgQEAKIAlp
bnQgICAgICAgICAgICAgdGVtcF91bnVzYWJsZTsKIAlzdHJ1Y3QgaHZfZGV2aWNlICAqaG5fZGV2
X29iajsKIAluZXR2c2NfZGV2ICAJKm5ldF9kZXY7CisKKwlzdHJ1Y3QgbHJvX2N0cmwJaG5fbHJv
OworCWludAkJaG5fbHJvX2hpd2F0OworCisJLyogVHJ1c3QgdGNwIHNlZ21lbnRzIHZlcmlmaWNh
dGlvbiBvbiBob3N0IHNpZGUgKi8KKwlpbnQJCWhuX3RydXN0X2hvc3R0Y3A7CisKKwl1X2xvbmcJ
CWhuX2NzdW1faXA7CisJdV9sb25nCQlobl9jc3VtX3RjcDsKKwl1X2xvbmcJCWhuX2NzdW1fdHJ1
c3RlZDsKKwl1X2xvbmcJCWhuX2xyb190cmllZDsKIH0gaG5fc29mdGNfdDsKIAogCmRpZmYgLS1n
aXQgYS9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0X3ZzYy5jIGIvc3lzL2Rldi9oeXBlcnYv
bmV0dnNjL2h2X25ldF92c2MuYwotLS0gYS9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0X3Zz
Yy5jCisrKyBiL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXRfdnNjLmMKQEAgLTkxOSw2ICs5
MTksNyBAQAogCSAqLwogCWh2X252X29uX3JlY2VpdmVfY29tcGxldGlvbihkZXZpY2UsIHZtX3hm
ZXJfcGFnZV9wa3QtPmQudHJhbnNhY3Rpb25faWQsCiAJICAgIHN0YXR1cyk7CisJaHZfcmZfcmVj
ZWl2ZV9yb2xsdXAobmV0X2Rldik7CiB9CiAKIC8qCgo=


--b1_c14163bddd8f0cd1f879d08e10e7134d--



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