Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Feb 2016 05:25:33 +0000
From:      Phabricator <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] [Closed] D5158: hyperv/hn: Factor out hn_encap from hn_start_locked()
Message-ID:  <7d83666eeeadbf8cd33a405b6c1d7cae@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-5v4e26c5tdlasty2smqd-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-5v4e26c5tdlasty2smqd-req@FreeBSD.org>

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

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

This revision was automatically updated to reflect the committed changes.
Closed by commit rS295302: hyperv/hn: Factor out hn_encap() from hn_start_locked() (authored by sephe).

CHANGED PRIOR TO COMMIT
  https://reviews.freebsd.org/D5158?vs=12925&id=13036#toc

REPOSITORY
  rS FreeBSD src repository

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D5158?vs=12925&id=13036

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

AFFECTED FILES
  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-net-list

--b1_7d83666eeeadbf8cd33a405b6c1d7cae
Content-Type: text/x-patch; charset=utf-8; name="D5158.13036.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D5158.13036.patch"

ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJl
ZWJzZC5jIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKLS0tIGEvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKKysrIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKQEAgLTI1NCw2ICsyNTQsNyBAQAogc3RhdGljIHZvaWQgaG5fZGVzdHJveV90eF9yaW5nKHN0
cnVjdCBobl9zb2Z0YyAqc2MpOwogc3RhdGljIHZvaWQgaG5fc3RhcnRfdGFza2Z1bmModm9pZCAq
eHNjLCBpbnQgcGVuZGluZyk7CiBzdGF0aWMgdm9pZCBobl90eGVvZl90YXNrZnVuYyh2b2lkICp4
c2MsIGludCBwZW5kaW5nKTsKK3N0YXRpYyBpbnQgaG5fZW5jYXAoc3RydWN0IGhuX3NvZnRjICos
IHN0cnVjdCBobl90eGRlc2MgKiwgc3RydWN0IG1idWYgKiopOwogCiBzdGF0aWMgX19pbmxpbmUg
dm9pZAogaG5fc2V0X2xyb19oaXdhdChzdHJ1Y3QgaG5fc29mdGMgKnNjLCBpbnQgaGl3YXQpCkBA
IC03NDQsMzEgKzc0NSwyMzUgQEAKIH0KIAogLyoKLSAqIFN0YXJ0IGEgdHJhbnNtaXQgb2Ygb25l
IG9yIG1vcmUgcGFja2V0cworICogTk9URToKKyAqIFRoaXMgdGhpcyBmdW5jdGlvbiBmYWlscywg
dGhlbiBib3RoIHR4ZCBhbmQgbV9oZWFkMCB3aWxsIGJlIGZyZWVkCiAgKi8KIHN0YXRpYyBpbnQK
LWhuX3N0YXJ0X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgaW50IGxlbikKK2huX2VuY2FwKHN0
cnVjdCBobl9zb2Z0YyAqc2MsIHN0cnVjdCBobl90eGRlc2MgKnR4ZCwgc3RydWN0IG1idWYgKipt
X2hlYWQwKQogewotCWhuX3NvZnRjX3QgKnNjID0gaWZwLT5pZl9zb2Z0YzsKLQlzdHJ1Y3QgaHZf
ZGV2aWNlICpkZXZpY2VfY3R4ID0gdm1idXNfZ2V0X2RldmN0eChzYy0+aG5fZGV2KTsKLQluZXR2
c2NfZGV2ICpuZXRfZGV2ID0gc2MtPm5ldF9kZXY7CisJYnVzX2RtYV9zZWdtZW50X3Qgc2Vnc1tI
Tl9UWF9EQVRBX1NFR0NOVF9NQVhdOworCWludCBlcnJvciwgbnNlZ3MsIGk7CisJc3RydWN0IG1i
dWYgKm1faGVhZCA9ICptX2hlYWQwOworCW5ldHZzY19wYWNrZXQgKnBhY2tldDsKIAlybmRpc19t
c2cgKnJuZGlzX21lc2c7CiAJcm5kaXNfcGFja2V0ICpybmRpc19wa3Q7CiAJcm5kaXNfcGVyX3Bh
Y2tldF9pbmZvICpycHBpOwotCW5kaXNfODAyMXFfaW5mbyAqcnBwaV92bGFuX2luZm87Ci0Jcm5k
aXNfdGNwX2lwX2NzdW1faW5mbyAqY3N1bV9pbmZvOwotCXJuZGlzX3RjcF90c29faW5mbyAqdHNv
X2luZm87CQotCXVpbnQzMl90IHJuZGlzX21zZ19zaXplID0gMDsKKwl1aW50MzJfdCBybmRpc19t
c2dfc2l6ZTsKKworCXBhY2tldCA9ICZ0eGQtPm5ldHZzY19wa3Q7CisJcGFja2V0LT5pc19kYXRh
X3BrdCA9IFRSVUU7CisJcGFja2V0LT50b3RfZGF0YV9idWZfbGVuID0gbV9oZWFkLT5tX3BrdGhk
ci5sZW47CisKKwkvKgorCSAqIGV4dGVuc2lvbiBwb2ludHMgdG8gdGhlIGFyZWEgcmVzZXJ2ZWQg
Zm9yIHRoZQorCSAqIHJuZGlzX2ZpbHRlcl9wYWNrZXQsIHdoaWNoIGlzIHBsYWNlZCBqdXN0IGFm
dGVyCisJICogdGhlIG5ldHZzY19wYWNrZXQgKGFuZCBycHBpIHN0cnVjdCwgaWYgcHJlc2VudDsK
KwkgKiBsZW5ndGggaXMgdXBkYXRlZCBsYXRlcikuCisJICovCisJcm5kaXNfbWVzZyA9IHR4ZC0+
cm5kaXNfbXNnOworCS8qIFhYWCBub3QgbmVjZXNzYXJ5ICovCisJbWVtc2V0KHJuZGlzX21lc2cs
IDAsIEhOX1JORElTX01TR19MRU4pOworCXJuZGlzX21lc2ctPm5kaXNfbXNnX3R5cGUgPSBSRU1P
VEVfTkRJU19QQUNLRVRfTVNHOworCisJcm5kaXNfcGt0ID0gJnJuZGlzX21lc2ctPm1zZy5wYWNr
ZXQ7CisJcm5kaXNfcGt0LT5kYXRhX29mZnNldCA9IHNpemVvZihybmRpc19wYWNrZXQpOworCXJu
ZGlzX3BrdC0+ZGF0YV9sZW5ndGggPSBwYWNrZXQtPnRvdF9kYXRhX2J1Zl9sZW47CisJcm5kaXNf
cGt0LT5wZXJfcGt0X2luZm9fb2Zmc2V0ID0gc2l6ZW9mKHJuZGlzX3BhY2tldCk7CisKKwlybmRp
c19tc2dfc2l6ZSA9IFJORElTX01FU1NBR0VfU0laRShybmRpc19wYWNrZXQpOworCisJaWYgKG1f
aGVhZC0+bV9mbGFncyAmIE1fVkxBTlRBRykgeworCQluZGlzXzgwMjFxX2luZm8gKnJwcGlfdmxh
bl9pbmZvOworCisJCXJuZGlzX21zZ19zaXplICs9IFJORElTX1ZMQU5fUFBJX1NJWkU7CisJCXJw
cGkgPSBodl9zZXRfcnBwaV9kYXRhKHJuZGlzX21lc2csIFJORElTX1ZMQU5fUFBJX1NJWkUsCisJ
CSAgICBpZWVlXzgwMjFxX2luZm8pOworCisJCXJwcGlfdmxhbl9pbmZvID0gKG5kaXNfODAyMXFf
aW5mbyAqKSgodWludDhfdCAqKXJwcGkgKworCQkgICAgcnBwaS0+cGVyX3BhY2tldF9pbmZvX29m
ZnNldCk7CisJCXJwcGlfdmxhbl9pbmZvLT51MS5zMS52bGFuX2lkID0KKwkJICAgIG1faGVhZC0+
bV9wa3RoZHIuZXRoZXJfdnRhZyAmIDB4ZmZmOworCX0KKworCWlmIChtX2hlYWQtPm1fcGt0aGRy
LmNzdW1fZmxhZ3MgJiBDU1VNX1RTTykgeworCQlybmRpc190Y3BfdHNvX2luZm8gKnRzb19pbmZv
OwkKKwkJc3RydWN0IGV0aGVyX3ZsYW5faGVhZGVyICplaDsKKwkJaW50IGV0aGVyX2xlbjsKKwor
CQkvKgorCQkgKiBYWFggbmVlZCBtX3B1bGx1cCBhbmQgdXNlIG10b2RvCisJCSAqLworCQllaCA9
IG10b2QobV9oZWFkLCBzdHJ1Y3QgZXRoZXJfdmxhbl9oZWFkZXIqKTsKKwkJaWYgKGVoLT5ldmxf
ZW5jYXBfcHJvdG8gPT0gaHRvbnMoRVRIRVJUWVBFX1ZMQU4pKQorCQkJZXRoZXJfbGVuID0gRVRI
RVJfSERSX0xFTiArIEVUSEVSX1ZMQU5fRU5DQVBfTEVOOworCQllbHNlCisJCQlldGhlcl9sZW4g
PSBFVEhFUl9IRFJfTEVOOworCisJCXJuZGlzX21zZ19zaXplICs9IFJORElTX1RTT19QUElfU0la
RTsKKwkJcnBwaSA9IGh2X3NldF9ycHBpX2RhdGEocm5kaXNfbWVzZywgUk5ESVNfVFNPX1BQSV9T
SVpFLAorCQkgICAgdGNwX2xhcmdlX3NlbmRfaW5mbyk7CisKKwkJdHNvX2luZm8gPSAocm5kaXNf
dGNwX3Rzb19pbmZvICopKCh1aW50OF90ICopcnBwaSArCisJCSAgICBycHBpLT5wZXJfcGFja2V0
X2luZm9fb2Zmc2V0KTsKKwkJdHNvX2luZm8tPmxzb192Ml94bWl0LnR5cGUgPQorCQkgICAgUk5E
SVNfVENQX0xBUkdFX1NFTkRfT0ZGTE9BRF9WMl9UWVBFOworCisjaWZkZWYgSU5FVAorCQlpZiAo
bV9oZWFkLT5tX3BrdGhkci5jc3VtX2ZsYWdzICYgQ1NVTV9JUF9UU08pIHsKKwkJCXN0cnVjdCBp
cCAqaXAgPQorCQkJICAgIChzdHJ1Y3QgaXAgKikobV9oZWFkLT5tX2RhdGEgKyBldGhlcl9sZW4p
OworCQkJdW5zaWduZWQgbG9uZyBpcGhfbGVuID0gaXAtPmlwX2hsIDw8IDI7CisJCQlzdHJ1Y3Qg
dGNwaGRyICp0aCA9CisJCQkgICAgKHN0cnVjdCB0Y3BoZHIgKikoKGNhZGRyX3QpaXAgKyBpcGhf
bGVuKTsKKworCQkJdHNvX2luZm8tPmxzb192Ml94bWl0LmlwX3ZlcnNpb24gPQorCQkJICAgIFJO
RElTX1RDUF9MQVJHRV9TRU5EX09GRkxPQURfSVBWNDsKKwkJCWlwLT5pcF9sZW4gPSAwOworCQkJ
aXAtPmlwX3N1bSA9IDA7CisKKwkJCXRoLT50aF9zdW0gPSBpbl9wc2V1ZG8oaXAtPmlwX3NyYy5z
X2FkZHIsCisJCQkgICAgaXAtPmlwX2RzdC5zX2FkZHIsIGh0b25zKElQUFJPVE9fVENQKSk7CisJ
CX0KKyNlbmRpZgorI2lmIGRlZmluZWQoSU5FVDYpICYmIGRlZmluZWQoSU5FVCkKKwkJZWxzZQor
I2VuZGlmCisjaWZkZWYgSU5FVDYKKwkJeworCQkJc3RydWN0IGlwNl9oZHIgKmlwNiA9IChzdHJ1
Y3QgaXA2X2hkciAqKQorCQkJICAgIChtX2hlYWQtPm1fZGF0YSArIGV0aGVyX2xlbik7CisJCQlz
dHJ1Y3QgdGNwaGRyICp0aCA9IChzdHJ1Y3QgdGNwaGRyICopKGlwNiArIDEpOworCisJCQl0c29f
aW5mby0+bHNvX3YyX3htaXQuaXBfdmVyc2lvbiA9CisJCQkgICAgUk5ESVNfVENQX0xBUkdFX1NF
TkRfT0ZGTE9BRF9JUFY2OworCQkJaXA2LT5pcDZfcGxlbiA9IDA7CisJCQl0aC0+dGhfc3VtID0g
aW42X2Nrc3VtX3BzZXVkbyhpcDYsIDAsIElQUFJPVE9fVENQLCAwKTsKKwkJfQorI2VuZGlmCisJ
CXRzb19pbmZvLT5sc29fdjJfeG1pdC50Y3BfaGVhZGVyX29mZnNldCA9IDA7CisJCXRzb19pbmZv
LT5sc29fdjJfeG1pdC5tc3MgPSBtX2hlYWQtPm1fcGt0aGRyLnRzb19zZWdzejsKKwl9IGVsc2Ug
aWYgKG1faGVhZC0+bV9wa3RoZHIuY3N1bV9mbGFncyAmIHNjLT5obl9jc3VtX2Fzc2lzdCkgewor
CQlybmRpc190Y3BfaXBfY3N1bV9pbmZvICpjc3VtX2luZm87CisKKwkJcm5kaXNfbXNnX3NpemUg
Kz0gUk5ESVNfQ1NVTV9QUElfU0laRTsKKwkJcnBwaSA9IGh2X3NldF9ycHBpX2RhdGEocm5kaXNf
bWVzZywgUk5ESVNfQ1NVTV9QUElfU0laRSwKKwkJICAgIHRjcGlwX2Noa3N1bV9pbmZvKTsKKwkJ
Y3N1bV9pbmZvID0gKHJuZGlzX3RjcF9pcF9jc3VtX2luZm8gKikoKHVpbnQ4X3QgKilycHBpICsK
KwkJICAgIHJwcGktPnBlcl9wYWNrZXRfaW5mb19vZmZzZXQpOworCisJCWNzdW1faW5mby0+eG1p
dC5pc19pcHY0ID0gMTsKKwkJaWYgKG1faGVhZC0+bV9wa3RoZHIuY3N1bV9mbGFncyAmIENTVU1f
SVApCisJCQljc3VtX2luZm8tPnhtaXQuaXBfaGVhZGVyX2NzdW0gPSAxOworCisJCWlmIChtX2hl
YWQtPm1fcGt0aGRyLmNzdW1fZmxhZ3MgJiBDU1VNX1RDUCkgeworCQkJY3N1bV9pbmZvLT54bWl0
LnRjcF9jc3VtID0gMTsKKwkJCWNzdW1faW5mby0+eG1pdC50Y3BfaGVhZGVyX29mZnNldCA9IDA7
CisJCX0gZWxzZSBpZiAobV9oZWFkLT5tX3BrdGhkci5jc3VtX2ZsYWdzICYgQ1NVTV9VRFApIHsK
KwkJCWNzdW1faW5mby0+eG1pdC51ZHBfY3N1bSA9IDE7CisJCX0KKwl9CisKKwlybmRpc19tZXNn
LT5tc2dfbGVuID0gcGFja2V0LT50b3RfZGF0YV9idWZfbGVuICsgcm5kaXNfbXNnX3NpemU7CisJ
cGFja2V0LT50b3RfZGF0YV9idWZfbGVuID0gcm5kaXNfbWVzZy0+bXNnX2xlbjsKKworCS8qCisJ
ICogQ2hpbW5leSBzZW5kLCBpZiB0aGUgcGFja2V0IGNvdWxkIGZpdCBpbnRvIG9uZSBjaGltbmV5
IGJ1ZmZlci4KKwkgKi8KKwlpZiAocGFja2V0LT50b3RfZGF0YV9idWZfbGVuIDwgc2MtPmhuX3R4
X2NoaW1uZXlfc2l6ZSkgeworCQluZXR2c2NfZGV2ICpuZXRfZGV2ID0gc2MtPm5ldF9kZXY7CisJ
CXVpbnQzMl90IHNlbmRfYnVmX3NlY3Rpb25faWR4OworCisJCXNlbmRfYnVmX3NlY3Rpb25faWR4
ID0KKwkJICAgIGh2X252X2dldF9uZXh0X3NlbmRfc2VjdGlvbihuZXRfZGV2KTsKKwkJaWYgKHNl
bmRfYnVmX3NlY3Rpb25faWR4ICE9CisJCSAgICBOVlNQXzFfQ0hJTU5FWV9TRU5EX0lOVkFMSURf
U0VDVElPTl9JTkRFWCkgeworCQkJdWludDhfdCAqZGVzdCA9ICgodWludDhfdCAqKW5ldF9kZXYt
PnNlbmRfYnVmICsKKwkJCSAgICAoc2VuZF9idWZfc2VjdGlvbl9pZHggKgorCQkJICAgICBuZXRf
ZGV2LT5zZW5kX3NlY3Rpb25fc2l6ZSkpOworCisJCQltZW1jcHkoZGVzdCwgcm5kaXNfbWVzZywg
cm5kaXNfbXNnX3NpemUpOworCQkJZGVzdCArPSBybmRpc19tc2dfc2l6ZTsKKwkJCW1fY29weWRh
dGEobV9oZWFkLCAwLCBtX2hlYWQtPm1fcGt0aGRyLmxlbiwgZGVzdCk7CisKKwkJCXBhY2tldC0+
c2VuZF9idWZfc2VjdGlvbl9pZHggPSBzZW5kX2J1Zl9zZWN0aW9uX2lkeDsKKwkJCXBhY2tldC0+
c2VuZF9idWZfc2VjdGlvbl9zaXplID0KKwkJCSAgICBwYWNrZXQtPnRvdF9kYXRhX2J1Zl9sZW47
CisJCQlwYWNrZXQtPnBhZ2VfYnVmX2NvdW50ID0gMDsKKwkJCXNjLT5obl90eF9jaGltbmV5Kys7
CisJCQlnb3RvIGRvbmU7CisJCX0KKwl9CisKKwllcnJvciA9IGhuX3R4ZGVzY19kbWFtYXBfbG9h
ZChzYywgdHhkLCAmbV9oZWFkLCBzZWdzLCAmbnNlZ3MpOworCWlmIChlcnJvcikgeworCQlpbnQg
ZnJlZWQ7CisKKwkJLyoKKwkJICogVGhpcyBtYnVmIGlzIG5vdCBsaW5rZWQgdy8gdGhlIHR4ZCB5
ZXQsIHNvIGZyZWUgaXQgbm93LgorCQkgKi8KKwkJbV9mcmVlbShtX2hlYWQpOworCQkqbV9oZWFk
MCA9IE5VTEw7CisKKwkJZnJlZWQgPSBobl90eGRlc2NfcHV0KHNjLCB0eGQpOworCQlLQVNTRVJU
KGZyZWVkICE9IDAsCisJCSAgICAoImZhaWwgdG8gZnJlZSB0eGQgdXBvbiB0eGRtYSBlcnJvciIp
KTsKKworCQlzYy0+aG5fdHhkbWFfZmFpbGVkKys7CisJCWlmX2luY19jb3VudGVyKHNjLT5obl9p
ZnAsIElGQ09VTlRFUl9PRVJST1JTLCAxKTsKKwkJcmV0dXJuIGVycm9yOworCX0KKwkqbV9oZWFk
MCA9IG1faGVhZDsKKworCXBhY2tldC0+cGFnZV9idWZfY291bnQgPSBuc2VncyArIEhWX1JGX05V
TV9UWF9SRVNFUlZFRF9QQUdFX0JVRlM7CisKKwkvKiBzZW5kIHBhY2tldCB3aXRoIHBhZ2UgYnVm
ZmVyICovCisJcGFja2V0LT5wYWdlX2J1ZmZlcnNbMF0ucGZuID0gYXRvcCh0eGQtPnJuZGlzX21z
Z19wYWRkcik7CisJcGFja2V0LT5wYWdlX2J1ZmZlcnNbMF0ub2Zmc2V0ID0gdHhkLT5ybmRpc19t
c2dfcGFkZHIgJiBQQUdFX01BU0s7CisJcGFja2V0LT5wYWdlX2J1ZmZlcnNbMF0ubGVuZ3RoID0g
cm5kaXNfbXNnX3NpemU7CisKKwkvKgorCSAqIEZpbGwgdGhlIHBhZ2UgYnVmZmVycyB3aXRoIG1i
dWYgaW5mbyBzdGFydGluZyBhdCBpbmRleAorCSAqIEhWX1JGX05VTV9UWF9SRVNFUlZFRF9QQUdF
X0JVRlMuCisJICovCisJZm9yIChpID0gMDsgaSA8IG5zZWdzOyArK2kpIHsKKwkJaHZfdm1idXNf
cGFnZV9idWZmZXIgKnBiID0gJnBhY2tldC0+cGFnZV9idWZmZXJzWworCQkgICAgaSArIEhWX1JG
X05VTV9UWF9SRVNFUlZFRF9QQUdFX0JVRlNdOworCisJCXBiLT5wZm4gPSBhdG9wKHNlZ3NbaV0u
ZHNfYWRkcik7CisJCXBiLT5vZmZzZXQgPSBzZWdzW2ldLmRzX2FkZHIgJiBQQUdFX01BU0s7CisJ
CXBiLT5sZW5ndGggPSBzZWdzW2ldLmRzX2xlbjsKKwl9CisKKwlwYWNrZXQtPnNlbmRfYnVmX3Nl
Y3Rpb25faWR4ID0KKwkgICAgTlZTUF8xX0NISU1ORVlfU0VORF9JTlZBTElEX1NFQ1RJT05fSU5E
RVg7CisJcGFja2V0LT5zZW5kX2J1Zl9zZWN0aW9uX3NpemUgPSAwOworZG9uZToKKwl0eGQtPm0g
PSBtX2hlYWQ7CisKKwkvKiBTZXQgdGhlIGNvbXBsZXRpb24gcm91dGluZSAqLworCXBhY2tldC0+
Y29tcGwuc2VuZC5vbl9zZW5kX2NvbXBsZXRpb24gPSBuZXR2c2NfeG1pdF9jb21wbGV0aW9uOwor
CXBhY2tldC0+Y29tcGwuc2VuZC5zZW5kX2NvbXBsZXRpb25fY29udGV4dCA9IHBhY2tldDsKKwlw
YWNrZXQtPmNvbXBsLnNlbmQuc2VuZF9jb21wbGV0aW9uX3RpZCA9ICh1aW50NjRfdCkodWludHB0
cl90KXR4ZDsKKworCXJldHVybiAwOworfQorCisvKgorICogU3RhcnQgYSB0cmFuc21pdCBvZiBv
bmUgb3IgbW9yZSBwYWNrZXRzCisgKi8KK3N0YXRpYyBpbnQKK2huX3N0YXJ0X2xvY2tlZChzdHJ1
Y3QgaWZuZXQgKmlmcCwgaW50IGxlbikKK3sKKwlzdHJ1Y3QgaG5fc29mdGMgKnNjID0gaWZwLT5p
Zl9zb2Z0YzsKKwlzdHJ1Y3QgaHZfZGV2aWNlICpkZXZpY2VfY3R4ID0gdm1idXNfZ2V0X2RldmN0
eChzYy0+aG5fZGV2KTsKIAogCWlmICgoaWZwLT5pZl9kcnZfZmxhZ3MgJiAoSUZGX0RSVl9SVU5O
SU5HIHwgSUZGX0RSVl9PQUNUSVZFKSkgIT0KIAkgICAgSUZGX0RSVl9SVU5OSU5HKQogCQlyZXR1
cm4gMDsKIAogCXdoaWxlICghSUZRX0RSVl9JU19FTVBUWSgmaWZwLT5pZl9zbmQpKSB7Ci0JCWJ1
c19kbWFfc2VnbWVudF90IHNlZ3NbSE5fVFhfREFUQV9TRUdDTlRfTUFYXTsKLQkJaW50IGVycm9y
LCBuc2VncywgaSwgc2VuZF9mYWlsZWQgPSAwOworCQlpbnQgZXJyb3IsIHNlbmRfZmFpbGVkID0g
MDsKIAkJc3RydWN0IGhuX3R4ZGVzYyAqdHhkOwotCQluZXR2c2NfcGFja2V0ICpwYWNrZXQ7CiAJ
CXN0cnVjdCBtYnVmICptX2hlYWQ7CiAKIAkJSUZRX0RSVl9ERVFVRVVFKCZpZnAtPmlmX3NuZCwg
bV9oZWFkKTsKQEAgLTc5MywyMTYgKzk5OCwxNyBAQAogCQkJYnJlYWs7CiAJCX0KIAotCQlwYWNr
ZXQgPSAmdHhkLT5uZXR2c2NfcGt0OwotCQlwYWNrZXQtPmlzX2RhdGFfcGt0ID0gVFJVRTsKLQkJ
LyogSW5pdGlhbGl6ZSBpdCBmcm9tIHRoZSBtYnVmICovCi0JCXBhY2tldC0+dG90X2RhdGFfYnVm
X2xlbiA9IG1faGVhZC0+bV9wa3RoZHIubGVuOwotCi0JCS8qCi0JCSAqIGV4dGVuc2lvbiBwb2lu
dHMgdG8gdGhlIGFyZWEgcmVzZXJ2ZWQgZm9yIHRoZQotCQkgKiBybmRpc19maWx0ZXJfcGFja2V0
LCB3aGljaCBpcyBwbGFjZWQganVzdCBhZnRlcgotCQkgKiB0aGUgbmV0dnNjX3BhY2tldCAoYW5k
IHJwcGkgc3RydWN0LCBpZiBwcmVzZW50OwotCQkgKiBsZW5ndGggaXMgdXBkYXRlZCBsYXRlciku
Ci0JCSAqLwotCQlybmRpc19tZXNnID0gdHhkLT5ybmRpc19tc2c7Ci0JCS8qIFhYWCBub3QgbmVj
ZXNzYXJ5ICovCi0JCW1lbXNldChybmRpc19tZXNnLCAwLCBITl9STkRJU19NU0dfTEVOKTsKLQkJ
cm5kaXNfbWVzZy0+bmRpc19tc2dfdHlwZSA9IFJFTU9URV9ORElTX1BBQ0tFVF9NU0c7Ci0KLQkJ
cm5kaXNfcGt0ID0gJnJuZGlzX21lc2ctPm1zZy5wYWNrZXQ7Ci0JCXJuZGlzX3BrdC0+ZGF0YV9v
ZmZzZXQgPSBzaXplb2Yocm5kaXNfcGFja2V0KTsKLQkJcm5kaXNfcGt0LT5kYXRhX2xlbmd0aCA9
IHBhY2tldC0+dG90X2RhdGFfYnVmX2xlbjsKLQkJcm5kaXNfcGt0LT5wZXJfcGt0X2luZm9fb2Zm
c2V0ID0gc2l6ZW9mKHJuZGlzX3BhY2tldCk7Ci0KLQkJcm5kaXNfbXNnX3NpemUgPSBSTkRJU19N
RVNTQUdFX1NJWkUocm5kaXNfcGFja2V0KTsKLQotCQkvKgotCQkgKiBJZiB0aGUgSHlwZXItViBp
bmZyYXN0cnVjdHVyZSBuZWVkcyB0byBlbWJlZCBhIFZMQU4gdGFnLAotCQkgKiBpbml0aWFsaXpl
IG5ldHZzY19wYWNrZXQgYW5kIHJwcGkgc3RydWN0IHZhbHVlcyBhcyBuZWVkZWQuCi0JCSAqLwot
CQlpZiAobV9oZWFkLT5tX2ZsYWdzICYgTV9WTEFOVEFHKSB7Ci0JCQkvKgotCQkJICogc2V0IHVw
IHNvbWUgYWRkaXRpb25hbCBmaWVsZHMgc28gdGhlIEh5cGVyLVYgaW5mcmFzdHJ1Y3R1cmUgd2ls
bCBzdHVmZiB0aGUgVkxBTiB0YWcKLQkJCSAqIGludG8gdGhlIGZyYW1lLgotCQkJICovCi0JCQly
bmRpc19tc2dfc2l6ZSArPSBSTkRJU19WTEFOX1BQSV9TSVpFOwotCi0JCQlycHBpID0gaHZfc2V0
X3JwcGlfZGF0YShybmRpc19tZXNnLCBSTkRJU19WTEFOX1BQSV9TSVpFLAotCQkJICAgIGllZWVf
ODAyMXFfaW5mbyk7Ci0JCQotCQkJLyogVkxBTiBpbmZvIGltbWVkaWF0ZWx5IGZvbGxvd3MgcnBw
aSBzdHJ1Y3QgKi8KLQkJCXJwcGlfdmxhbl9pbmZvID0gKG5kaXNfODAyMXFfaW5mbyAqKSgoY2hh
ciopcnBwaSArIAotCQkJICAgIHJwcGktPnBlcl9wYWNrZXRfaW5mb19vZmZzZXQpOwotCQkJLyog
RnJlZUJTRCBkb2VzIG5vdCBzdXBwb3J0IENGSSBvciBwcmlvcml0eSAqLwotCQkJcnBwaV92bGFu
X2luZm8tPnUxLnMxLnZsYW5faWQgPQotCQkJICAgIG1faGVhZC0+bV9wa3RoZHIuZXRoZXJfdnRh
ZyAmIDB4ZmZmOwotCQl9Ci0KLQkJaWYgKG1faGVhZC0+bV9wa3RoZHIuY3N1bV9mbGFncyAmIENT
VU1fVFNPKSB7Ci0JCQlzdHJ1Y3QgZXRoZXJfdmxhbl9oZWFkZXIgKmVoOwotCQkJaW50IGV0aGVy
X2xlbjsKLQotCQkJZWggPSBtdG9kKG1faGVhZCwgc3RydWN0IGV0aGVyX3ZsYW5faGVhZGVyKik7
Ci0JCQlpZiAoZWgtPmV2bF9lbmNhcF9wcm90byA9PSBodG9ucyhFVEhFUlRZUEVfVkxBTikpIHsK
LQkJCQlldGhlcl9sZW4gPSBFVEhFUl9IRFJfTEVOICsKLQkJCQkgICAgRVRIRVJfVkxBTl9FTkNB
UF9MRU47Ci0JCQl9IGVsc2UgewotCQkJCWV0aGVyX2xlbiA9IEVUSEVSX0hEUl9MRU47Ci0JCQl9
Ci0KLQkJCXJuZGlzX21zZ19zaXplICs9IFJORElTX1RTT19QUElfU0laRTsKLQkJCXJwcGkgPSBo
dl9zZXRfcnBwaV9kYXRhKHJuZGlzX21lc2csIFJORElTX1RTT19QUElfU0laRSwKLQkJCSAgICB0
Y3BfbGFyZ2Vfc2VuZF9pbmZvKTsKLQotCQkJdHNvX2luZm8gPSAocm5kaXNfdGNwX3Rzb19pbmZv
ICopKChjaGFyICopcnBwaSArCi0JCQkgICAgcnBwaS0+cGVyX3BhY2tldF9pbmZvX29mZnNldCk7
Ci0JCQl0c29faW5mby0+bHNvX3YyX3htaXQudHlwZSA9Ci0JCQkgICAgUk5ESVNfVENQX0xBUkdF
X1NFTkRfT0ZGTE9BRF9WMl9UWVBFOwotCi0jaWZkZWYgSU5FVAotCQkJaWYgKG1faGVhZC0+bV9w
a3RoZHIuY3N1bV9mbGFncyAmIENTVU1fSVBfVFNPKSB7Ci0JCQkJc3RydWN0IGlwICppcCA9Ci0J
CQkJICAgIChzdHJ1Y3QgaXAgKikobV9oZWFkLT5tX2RhdGEgKyBldGhlcl9sZW4pOwotCQkJCXVu
c2lnbmVkIGxvbmcgaXBoX2xlbiA9IGlwLT5pcF9obCA8PCAyOwotCQkJCXN0cnVjdCB0Y3BoZHIg
KnRoID0KLQkJCQkgICAgKHN0cnVjdCB0Y3BoZHIgKikoKGNhZGRyX3QpaXAgKyBpcGhfbGVuKTsK
LQkJCQotCQkJCXRzb19pbmZvLT5sc29fdjJfeG1pdC5pcF92ZXJzaW9uID0KLQkJCQkgICAgUk5E
SVNfVENQX0xBUkdFX1NFTkRfT0ZGTE9BRF9JUFY0OwotCQkJCWlwLT5pcF9sZW4gPSAwOwotCQkJ
CWlwLT5pcF9zdW0gPSAwOwotCQkJCi0JCQkJdGgtPnRoX3N1bSA9IGluX3BzZXVkbyhpcC0+aXBf
c3JjLnNfYWRkciwKLQkJCQkgICAgaXAtPmlwX2RzdC5zX2FkZHIsIGh0b25zKElQUFJPVE9fVENQ
KSk7Ci0JCQl9Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKElORVQ2KSAmJiBkZWZpbmVkKElORVQpCi0J
CQllbHNlCi0jZW5kaWYKLSNpZmRlZiBJTkVUNgotCQkJewotCQkJCXN0cnVjdCBpcDZfaGRyICpp
cDYgPSAoc3RydWN0IGlwNl9oZHIgKikKLQkJCQkgICAgKG1faGVhZC0+bV9kYXRhICsgZXRoZXJf
bGVuKTsKLQkJCQlzdHJ1Y3QgdGNwaGRyICp0aCA9IChzdHJ1Y3QgdGNwaGRyICopKGlwNiArIDEp
OwotCi0JCQkJdHNvX2luZm8tPmxzb192Ml94bWl0LmlwX3ZlcnNpb24gPQotCQkJCSAgICBSTkRJ
U19UQ1BfTEFSR0VfU0VORF9PRkZMT0FEX0lQVjY7Ci0JCQkJaXA2LT5pcDZfcGxlbiA9IDA7Ci0J
CQkJdGgtPnRoX3N1bSA9Ci0JCQkJICAgIGluNl9ja3N1bV9wc2V1ZG8oaXA2LCAwLCBJUFBST1RP
X1RDUCwgMCk7Ci0JCQl9Ci0jZW5kaWYKLQkJCXRzb19pbmZvLT5sc29fdjJfeG1pdC50Y3BfaGVh
ZGVyX29mZnNldCA9IDA7Ci0JCQl0c29faW5mby0+bHNvX3YyX3htaXQubXNzID0gbV9oZWFkLT5t
X3BrdGhkci50c29fc2Vnc3o7Ci0JCX0gZWxzZSBpZiAobV9oZWFkLT5tX3BrdGhkci5jc3VtX2Zs
YWdzICYgc2MtPmhuX2NzdW1fYXNzaXN0KSB7Ci0JCQlybmRpc19tc2dfc2l6ZSArPSBSTkRJU19D
U1VNX1BQSV9TSVpFOwotCQkJcnBwaSA9IGh2X3NldF9ycHBpX2RhdGEocm5kaXNfbWVzZywgUk5E
SVNfQ1NVTV9QUElfU0laRSwKLQkJCSAgICB0Y3BpcF9jaGtzdW1faW5mbyk7Ci0JCQljc3VtX2lu
Zm8gPSAocm5kaXNfdGNwX2lwX2NzdW1faW5mbyAqKSgoY2hhciopcnBwaSArCi0JCQkgICAgcnBw
aS0+cGVyX3BhY2tldF9pbmZvX29mZnNldCk7Ci0KLQkJCWNzdW1faW5mby0+eG1pdC5pc19pcHY0
ID0gMTsKLQkJCWlmIChtX2hlYWQtPm1fcGt0aGRyLmNzdW1fZmxhZ3MgJiBDU1VNX0lQKQotCQkJ
CWNzdW1faW5mby0+eG1pdC5pcF9oZWFkZXJfY3N1bSA9IDE7Ci0KLQkJCWlmIChtX2hlYWQtPm1f
cGt0aGRyLmNzdW1fZmxhZ3MgJiBDU1VNX1RDUCkgewotCQkJCWNzdW1faW5mby0+eG1pdC50Y3Bf
Y3N1bSA9IDE7Ci0JCQkJY3N1bV9pbmZvLT54bWl0LnRjcF9oZWFkZXJfb2Zmc2V0ID0gMDsKLQkJ
CX0gZWxzZSBpZiAobV9oZWFkLT5tX3BrdGhkci5jc3VtX2ZsYWdzICYgQ1NVTV9VRFApIHsKLQkJ
CQljc3VtX2luZm8tPnhtaXQudWRwX2NzdW0gPSAxOwotCQkJfQotCQl9Ci0KLQkJcm5kaXNfbWVz
Zy0+bXNnX2xlbiA9IHBhY2tldC0+dG90X2RhdGFfYnVmX2xlbiArIHJuZGlzX21zZ19zaXplOwot
CQlwYWNrZXQtPnRvdF9kYXRhX2J1Zl9sZW4gPSBybmRpc19tZXNnLT5tc2dfbGVuOwotCi0JCS8q
IHNlbmQgcGFja2V0IHdpdGggc2VuZCBidWZmZXIgKi8KLQkJaWYgKHBhY2tldC0+dG90X2RhdGFf
YnVmX2xlbiA8IHNjLT5obl90eF9jaGltbmV5X3NpemUpIHsKLQkJCXVpbnQzMl90IHNlbmRfYnVm
X3NlY3Rpb25faWR4OwotCi0JCQlzZW5kX2J1Zl9zZWN0aW9uX2lkeCA9Ci0JCQkgICAgaHZfbnZf
Z2V0X25leHRfc2VuZF9zZWN0aW9uKG5ldF9kZXYpOwotCQkJaWYgKHNlbmRfYnVmX3NlY3Rpb25f
aWR4ICE9Ci0JCQkgICAgTlZTUF8xX0NISU1ORVlfU0VORF9JTlZBTElEX1NFQ1RJT05fSU5ERVgp
IHsKLQkJCQl1aW50OF90ICpkZXN0ID0gKCh1aW50OF90ICopbmV0X2Rldi0+c2VuZF9idWYgKwot
CQkJCSAgICAoc2VuZF9idWZfc2VjdGlvbl9pZHggKgotCQkJCSAgICAgbmV0X2Rldi0+c2VuZF9z
ZWN0aW9uX3NpemUpKTsKLQotCQkJCW1lbWNweShkZXN0LCBybmRpc19tZXNnLCBybmRpc19tc2df
c2l6ZSk7Ci0JCQkJZGVzdCArPSBybmRpc19tc2dfc2l6ZTsKLQotCQkJCW1fY29weWRhdGEobV9o
ZWFkLCAwLCBtX2hlYWQtPm1fcGt0aGRyLmxlbiwKLQkJCQkgICAgZGVzdCk7Ci0KLQkJCQlwYWNr
ZXQtPnNlbmRfYnVmX3NlY3Rpb25faWR4ID0KLQkJCQkgICAgc2VuZF9idWZfc2VjdGlvbl9pZHg7
Ci0JCQkJcGFja2V0LT5zZW5kX2J1Zl9zZWN0aW9uX3NpemUgPQotCQkJCSAgICBwYWNrZXQtPnRv
dF9kYXRhX2J1Zl9sZW47Ci0JCQkJcGFja2V0LT5wYWdlX2J1Zl9jb3VudCA9IDA7Ci0JCQkJc2Mt
PmhuX3R4X2NoaW1uZXkrKzsKLQkJCQlnb3RvIGRvX3NlbmQ7Ci0JCQl9Ci0JCX0KLQotCQllcnJv
ciA9IGhuX3R4ZGVzY19kbWFtYXBfbG9hZChzYywgdHhkLCAmbV9oZWFkLCBzZWdzLCAmbnNlZ3Mp
OworCQllcnJvciA9IGhuX2VuY2FwKHNjLCB0eGQsICZtX2hlYWQpOwogCQlpZiAoZXJyb3IpIHsK
LQkJCWludCBmcmVlZDsKLQotCQkJLyoKLQkJCSAqIFRoaXMgbWJ1ZiBpcyBub3QgbGlua2VkIHcv
IHRoZSB0eGQgeWV0LCBzbyBmcmVlCi0JCQkgKiBpdCBub3cuCi0JCQkgKi8KLQkJCW1fZnJlZW0o
bV9oZWFkKTsKLQkJCWZyZWVkID0gaG5fdHhkZXNjX3B1dChzYywgdHhkKTsKLQkJCUtBU1NFUlQo
ZnJlZWQgIT0gMCwKLQkJCSAgICAoImZhaWwgdG8gZnJlZSB0eGQgdXBvbiB0eGRtYSBlcnJvciIp
KTsKLQotCQkJc2MtPmhuX3R4ZG1hX2ZhaWxlZCsrOwotCQkJaWZfaW5jX2NvdW50ZXIoaWZwLCBJ
RkNPVU5URVJfT0VSUk9SUywgMSk7CisJCQkvKiBCb3RoIHR4ZCBhbmQgbV9oZWFkIGFyZSBmcmVl
ZCAqLwogCQkJY29udGludWU7CiAJCX0KLQotCQlwYWNrZXQtPnBhZ2VfYnVmX2NvdW50ID0gbnNl
Z3MgKwotCQkgICAgSFZfUkZfTlVNX1RYX1JFU0VSVkVEX1BBR0VfQlVGUzsKLQotCQkvKiBzZW5k
IHBhY2tldCB3aXRoIHBhZ2UgYnVmZmVyICovCi0JCXBhY2tldC0+cGFnZV9idWZmZXJzWzBdLnBm
biA9IGF0b3AodHhkLT5ybmRpc19tc2dfcGFkZHIpOwotCQlwYWNrZXQtPnBhZ2VfYnVmZmVyc1sw
XS5vZmZzZXQgPQotCQkgICAgdHhkLT5ybmRpc19tc2dfcGFkZHIgJiBQQUdFX01BU0s7Ci0JCXBh
Y2tldC0+cGFnZV9idWZmZXJzWzBdLmxlbmd0aCA9IHJuZGlzX21zZ19zaXplOwotCi0JCS8qCi0J
CSAqIEZpbGwgdGhlIHBhZ2UgYnVmZmVycyB3aXRoIG1idWYgaW5mbyBzdGFydGluZyBhdCBpbmRl
eAotCQkgKiBIVl9SRl9OVU1fVFhfUkVTRVJWRURfUEFHRV9CVUZTLgotCQkgKi8KLQkJZm9yIChp
ID0gMDsgaSA8IG5zZWdzOyArK2kpIHsKLQkJCWh2X3ZtYnVzX3BhZ2VfYnVmZmVyICpwYiA9ICZw
YWNrZXQtPnBhZ2VfYnVmZmVyc1sKLQkJCSAgICBpICsgSFZfUkZfTlVNX1RYX1JFU0VSVkVEX1BB
R0VfQlVGU107Ci0KLQkJCXBiLT5wZm4gPSBhdG9wKHNlZ3NbaV0uZHNfYWRkcik7Ci0JCQlwYi0+
b2Zmc2V0ID0gc2Vnc1tpXS5kc19hZGRyICYgUEFHRV9NQVNLOwotCQkJcGItPmxlbmd0aCA9IHNl
Z3NbaV0uZHNfbGVuOwotCQl9Ci0KLQkJcGFja2V0LT5zZW5kX2J1Zl9zZWN0aW9uX2lkeCA9IAot
CQkgICAgTlZTUF8xX0NISU1ORVlfU0VORF9JTlZBTElEX1NFQ1RJT05fSU5ERVg7Ci0JCXBhY2tl
dC0+c2VuZF9idWZfc2VjdGlvbl9zaXplID0gMDsKLQotZG9fc2VuZDoKLQkJdHhkLT5tID0gbV9o
ZWFkOwotCi0JCS8qIFNldCB0aGUgY29tcGxldGlvbiByb3V0aW5lICovCi0JCXBhY2tldC0+Y29t
cGwuc2VuZC5vbl9zZW5kX2NvbXBsZXRpb24gPSBuZXR2c2NfeG1pdF9jb21wbGV0aW9uOwotCQlw
YWNrZXQtPmNvbXBsLnNlbmQuc2VuZF9jb21wbGV0aW9uX2NvbnRleHQgPSBwYWNrZXQ7Ci0JCXBh
Y2tldC0+Y29tcGwuc2VuZC5zZW5kX2NvbXBsZXRpb25fdGlkID0KLQkJICAgICh1aW50NjRfdCko
dWludHB0cl90KXR4ZDsKLQogYWdhaW46CiAJCS8qCiAJCSAqIE1ha2Ugc3VyZSB0aGF0IHR4ZCBp
cyBub3QgZnJlZWQgYmVmb3JlIEVUSEVSX0JQRl9NVEFQLgogCQkgKi8KIAkJaG5fdHhkZXNjX2hv
bGQodHhkKTsKLQkJZXJyb3IgPSBodl9udl9vbl9zZW5kKGRldmljZV9jdHgsIHBhY2tldCk7CisJ
CWVycm9yID0gaHZfbnZfb25fc2VuZChkZXZpY2VfY3R4LCAmdHhkLT5uZXR2c2NfcGt0KTsKIAkJ
aWYgKCFlcnJvcikgewogCQkJRVRIRVJfQlBGX01UQVAoaWZwLCBtX2hlYWQpOwogCQkJaWZfaW5j
X2NvdW50ZXIoaWZwLCBJRkNPVU5URVJfT1BBQ0tFVFMsIDEpOwoK


--b1_7d83666eeeadbf8cd33a405b6c1d7cae--



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