Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Jun 2019 08:17:58 +0000
From:      "aleksandr.fedorov_itglobal.com (Aleksandr Fedorov)" <phabric-noreply@FreeBSD.org>
To:        Phabricator <phabric-noreply@FreeBSD.org>
Cc:        freebsd-virtualization@freebsd.org
Subject:   [Differential] D20276: [bhyve][virtio-net] Allow guest VM's to set JUMBO MTU in case of using the VALE switch.
Message-ID:  <882e2cb613975e4232abe536469afde4@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-pueoqfdkfh54jyuh6emz-req@reviews.freebsd.org>
References:  <differential-rev-PHID-DREV-pueoqfdkfh54jyuh6emz-req@reviews.freebsd.org>

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

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

YWxla3NhbmRyLmZlZG9yb3ZfaXRnbG9iYWwuY29tIHVwZGF0ZWQgdGhpcyByZXZpc2lvbiB0byBE
aWZmIDU4MzUzLgphbGVrc2FuZHIuZmVkb3Jvdl9pdGdsb2JhbC5jb20gYWRkZWQgYSBjb21tZW50
LgoKCiAgLSBSZXVzZSB2cV9nZXRjaGFpbigpIHRvIGhhbmRsZSB2YXJpb3VzIG5lZ290aWF0ZWQg
ZmVhdHVyZXMgKFRTTywgTVJHX1JYQlVGLCBJTkRJUkVDVCBkZXNjcmlwdG9ycykuCiAgLSBBZGQg
dHdvIGhlbHBlciBmdW5jdGlvbnMgdnFfZ2V0X21yZ3J4X2J1ZnMoKSBhbmQgdnFfcmVsY2hhaW5f
bXJncngoKSBhbmQgbW92ZSBpdCB0byB2aXJ0aW8uW2NoXQogIAogIFZpbmNlbnpvLCB3aGF0IGRv
IHlvdSB0aGluayBhYm91dCB0aGlzIGFwcHJvYWNoPwoKQ0hBTkdFUyBTSU5DRSBMQVNUIFVQREFU
RQogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EMjAyNzY/dnM9NTc3NjkmaWQ9NTgzNTMK
CkNIQU5HRVMgU0lOQ0UgTEFTVCBBQ1RJT04KICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcv
RDIwMjc2L25ldy8KClJFVklTSU9OIERFVEFJTAogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9y
Zy9EMjAyNzYKCkFGRkVDVEVEIEZJTEVTCiAgdXNyLnNiaW4vYmh5dmUvcGNpX3ZpcnRpb19uZXQu
YwogIHVzci5zYmluL2JoeXZlL3ZpcnRpby5jCiAgdXNyLnNiaW4vYmh5dmUvdmlydGlvLmgKCkVN
QUlMIFBSRUZFUkVOQ0VTCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL3NldHRpbmdzL3Bh
bmVsL2VtYWlscHJlZmVyZW5jZXMvCgpUbzogYWxla3NhbmRyLmZlZG9yb3ZfaXRnbG9iYWwuY29t
LCAjYmh5dmUsIGpoYiwgcmdyaW1lcywga3Jpb24sIHYubWFmZmlvbmVfZ21haWwuY29tCkNjOiBt
Z3Jvb21zX3NocmV3Lm5ldCwgbWl6aGthX2dtYWlsLmNvbSwgbm92ZWwsIG9sZXZvbGVfb2xldm9s
ZS5ydSwgZnJlZWJzZC12aXJ0dWFsaXphdGlvbi1saXN0LCBldmd1ZW5pLmdhdnJpbG92X2l0Z2xv
YmFsLmNvbSwgYmNyYW4K

--b1_882e2cb613975e4232abe536469afde4
Content-Type: text/x-patch; charset=utf-8; name="D20276.58353.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D20276.58353.patch"

ZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZlL3ZpcnRpby5oIGIvdXNyLnNiaW4vYmh5dmUvdmly
dGlvLmgKLS0tIGEvdXNyLnNiaW4vYmh5dmUvdmlydGlvLmgKKysrIGIvdXNyLnNiaW4vYmh5dmUv
dmlydGlvLmgKQEAgLTQ1Nyw4ICs0NTcsMTIgQEAKIAogaW50CXZxX2dldGNoYWluKHN0cnVjdCB2
cXVldWVfaW5mbyAqdnEsIHVpbnQxNl90ICpwaWR4LAogCQkgICAgc3RydWN0IGlvdmVjICppb3Ys
IGludCBuX2lvdiwgdWludDE2X3QgKmZsYWdzKTsKK2ludAl2cV9nZXRfbXJncnhfYnVmcyhzdHJ1
Y3QgdnF1ZXVlX2luZm8gKnZxLCBzdHJ1Y3QgaW92ZWMgKmlvdiwKKwkJCWludCBuX2lvdiwgaW50
IGxlbiwgc3RydWN0IHZpcnRpb191c2VkICp1c2VkLCBpbnQgKnVfY250KTsKIHZvaWQJdnFfcmV0
Y2hhaW4oc3RydWN0IHZxdWV1ZV9pbmZvICp2cSk7CiB2b2lkCXZxX3JlbGNoYWluKHN0cnVjdCB2
cXVldWVfaW5mbyAqdnEsIHVpbnQxNl90IGlkeCwgdWludDMyX3QgaW9sZW4pOwordm9pZAl2cV9y
ZWxjaGFpbl9tcmdyeChzdHJ1Y3QgdnF1ZXVlX2luZm8gKnZxLCBpbnQgbmJ1ZnMsIAorCQkJc3Ry
dWN0IHZpcnRpb191c2VkICp1c2VkKTsKIHZvaWQJdnFfZW5kY2hhaW5zKHN0cnVjdCB2cXVldWVf
aW5mbyAqdnEsIGludCB1c2VkX2FsbF9hdmFpbCk7CiAKIHVpbnQ2NF90IHZpX3BjaV9yZWFkKHN0
cnVjdCB2bWN0eCAqY3R4LCBpbnQgdmNwdSwgc3RydWN0IHBjaV9kZXZpbnN0ICpwaSwKZGlmZiAt
LWdpdCBhL3Vzci5zYmluL2JoeXZlL3ZpcnRpby5jIGIvdXNyLnNiaW4vYmh5dmUvdmlydGlvLmMK
LS0tIGEvdXNyLnNiaW4vYmh5dmUvdmlydGlvLmMKKysrIGIvdXNyLnNiaW4vYmh5dmUvdmlydGlv
LmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxwdGhyZWFkX25wLmg+CiAKICNpbmNsdWRl
ICJiaHl2ZXJ1bi5oIgorI2luY2x1ZGUgImlvdi5oIgogI2luY2x1ZGUgInBjaV9lbXVsLmgiCiAj
aW5jbHVkZSAidmlydGlvLmgiCiAKQEAgLTM4MSw2ICszODIsNTYgQEAKIAlyZXR1cm4gKC0xKTsK
IH0KIAoraW50CXZxX2dldF9tcmdyeF9idWZzKHN0cnVjdCB2cXVldWVfaW5mbyAqdnEsIHN0cnVj
dCBpb3ZlYyAqaW92LAorCQlpbnQgbl9pb3YsIGludCBsZW4sIHN0cnVjdCB2aXJ0aW9fdXNlZCAq
dXNlZCwgaW50ICp1X2NudCkKK3sKKwl1aW50MTZfdCBpZHg7CisJaW50IGksIGlvdl9sZW47CisJ
aW50IGJ1ZnMsIGxhc3RfYXZhaWxfc2F2ZWQsIG47CisJaW50IHRvdGFsX2xlbjsKKworCWkgPSAw
OworCWJ1ZnMgPSAwOworCXRvdGFsX2xlbiA9IDA7CisKKwkvKgorCSAqIHZxX2dldGNoYWluKCkg
aW5jcmVtZW50IHRoZSBsYXN0IGF2YWlsIGluZGV4LgorCSAqIFNhdmUgaXQgdG8gcmVzdG9yZSBp
ZiB0aGVyZSBhcmUgbm8gZW5vdWdoIGJ1ZmZlcnMgdG8gc3RvcmUgcGFja2V0LgorCSAqLworCWxh
c3RfYXZhaWxfc2F2ZWQgPSB2cS0+dnFfbGFzdF9hdmFpbDsKKwl3aGlsZSAoMSkgeworCQluID0g
dnFfZ2V0Y2hhaW4odnEsICZpZHgsICZpb3ZbaV0sIG5faW92IC0gaSwgTlVMTCk7CisKKwkJaWYg
KG4gPD0gMCkgeworCQkJLyogUmVzdG9yZSB0aGUgbGFzdCBhdmFpbCBpbmRleC4gKi8KKwkJCXZx
LT52cV9sYXN0X2F2YWlsID0gbGFzdF9hdmFpbF9zYXZlZDsKKwkJCSp1X2NudCA9IDA7CisJCQly
ZXR1cm4gKG4pOworCQl9CisKKwkJaW92X2xlbiA9IGNvdW50X2lvdigmaW92W2ldLCBuKTsKKwkJ
aSArPSBuOworCQl0b3RhbF9sZW4gKz0gaW92X2xlbjsKKworCQl1c2VkW2J1ZnNdLnZ1X2lkeCA9
IGlkeDsKKworCQlpZiAodG90YWxfbGVuIDwgbGVuKSB7CisJCQl1c2VkW2J1ZnNdLnZ1X3RsZW4g
PSBpb3ZfbGVuOworCQkJYnVmcysrOworCQl9IGVsc2UgeworCQkJdXNlZFtidWZzXS52dV90bGVu
ID0gaW92X2xlbiAtICh0b3RhbF9sZW4gLSBsZW4pOworCQkJYnVmcysrOworCQkJYnJlYWs7CisJ
CX0KKworCX07CisKKwkqdV9jbnQgPSBidWZzOworCisJcmV0dXJuIGk7CisKK30KKwogLyoKICAq
IFJldHVybiB0aGUgY3VycmVudGx5LWZpcnN0IHJlcXVlc3QgY2hhaW4gYmFjayB0byB0aGUgYXZh
aWxhYmxlIHF1ZXVlLgogICoKQEAgLTQzMCw2ICs0ODEsMzkgQEAKIAkgKiBFbnN1cmUgdGhlIHVz
ZWQgZGVzY3JpcHRvciBpcyB2aXNpYmxlIGJlZm9yZSB1cGRhdGluZyB0aGUgaW5kZXguCiAJICog
VGhpcyBpcyBuZWNlc3Nhcnkgb24gSVNBcyB3aXRoIG1lbW9yeSBvcmRlcmluZyBsZXNzIHN0cmlj
dCB0aGFuIHg4Ni4KIAkgKi8KKwlhdG9taWNfdGhyZWFkX2ZlbmNlX3JlbCgpOworCXZ1aC0+dnVf
aWR4ID0gdWlkeDsKK30KKworLyoKKyAqIFJldHVybiBzcGVjaWZpZWQgbWVyZ2VkIHJ4IGJ1ZmZl
cnMgdG8gdGhlIGd1ZXN0LCBzZXR0aW5nIGl0cyBJL08gbGVuZ3RoLgorICovCit2b2lkCit2cV9y
ZWxjaGFpbl9tcmdyeChzdHJ1Y3QgdnF1ZXVlX2luZm8gKnZxLCBpbnQgbmJ1ZnMsIHN0cnVjdCB2
aXJ0aW9fdXNlZCAqdXNlZCkKK3sKKwlpbnQgaTsKKwl1aW50MTZfdCB1aWR4LCBtYXNrOworCXZv
bGF0aWxlIHN0cnVjdCB2cmluZ191c2VkICp2dWg7CisJdm9sYXRpbGUgc3RydWN0IHZpcnRpb191
c2VkICp2dWU7CisKKwltYXNrID0gdnEtPnZxX3FzaXplIC0gMTsKKwl2dWggPSB2cS0+dnFfdXNl
ZDsKKworCXVpZHggPSB2dWgtPnZ1X2lkeDsKKworCWlmIChuYnVmcyA9PSAxKSB7CisJCXZ1ZSA9
ICZ2dWgtPnZ1X3JpbmdbdWlkeCsrICYgbWFza107CisJCXZ1ZS0+dnVfaWR4ID0gdXNlZFswXS52
dV9pZHg7CisJCXZ1ZS0+dnVfdGxlbiA9IHVzZWRbMF0udnVfdGxlbjsKKwl9IGVsc2UgeworCQlm
b3IgKGkgPSAwOyBpIDwgbmJ1ZnM7IGkrKykgeworCQkJdnVlID0gJnZ1aC0+dnVfcmluZ1sodWlk
eCArIGkpICYgbWFza107CisJCQl2dWUtPnZ1X2lkeCA9IHVzZWRbaV0udnVfaWR4OworCQkJdnVl
LT52dV90bGVuID0gdXNlZFtpXS52dV90bGVuOworCQl9CisJCXVpZHggKz0gbmJ1ZnM7CisJfQor
CQogCWF0b21pY190aHJlYWRfZmVuY2VfcmVsKCk7CiAJdnVoLT52dV9pZHggPSB1aWR4OwogfQpk
aWZmIC0tZ2l0IGEvdXNyLnNiaW4vYmh5dmUvcGNpX3ZpcnRpb19uZXQuYyBiL3Vzci5zYmluL2Jo
eXZlL3BjaV92aXJ0aW9fbmV0LmMKLS0tIGEvdXNyLnNiaW4vYmh5dmUvcGNpX3ZpcnRpb19uZXQu
YworKysgYi91c3Iuc2Jpbi9iaHl2ZS9wY2lfdmlydGlvX25ldC5jCkBAIC0zOTIsODUgKzM5Miwx
MDYgQEAKIH0KIAogc3RhdGljIF9faW5saW5lIGludAotcGNpX3Z0bmV0X25ldG1hcF93cml0ZXYo
c3RydWN0IG5tX2Rlc2MgKm5tZCwgc3RydWN0IGlvdmVjICppb3YsIGludCBpb3ZjbnQpCitwY2lf
dnRuZXRfbmV0bWFwX3dyaXRldihzdHJ1Y3Qgbm1fZGVzYyAqbm1kLCBzdHJ1Y3QgaW92ZWMgKmlv
diwgaW50IGlvdmNudCwgaW50IGlvdnNpemUpCiB7Ci0JaW50IHIsIGk7Ci0JaW50IGxlbiA9IDA7
CisJY2hhciAqYnVmOworCWludCBpOworCWludCBmcmFnX3NpemU7CisJaW50IGlvdl9vZmY7CisJ
aW50IGxlbjsKKwlpbnQgbm1fb2ZmOworCWludCBubV9idWZfc2l6ZTsKIAotCWZvciAociA9IG5t
ZC0+Y3VyX3R4X3Jpbmc7IDsgKSB7Ci0JCXN0cnVjdCBuZXRtYXBfcmluZyAqcmluZyA9IE5FVE1B
UF9UWFJJTkcobm1kLT5uaWZwLCByKTsKLQkJdWludDMyX3QgY3VyLCBpZHg7Ci0JCWNoYXIgKmJ1
ZjsKKwlzdHJ1Y3QgbmV0bWFwX3JpbmcgKnJpbmcgPSBORVRNQVBfVFhSSU5HKG5tZC0+bmlmcCwg
bm1kLT5jdXJfdHhfcmluZyk7CiAKLQkJaWYgKG5tX3JpbmdfZW1wdHkocmluZykpIHsKLQkJCXIr
KzsKLQkJCWlmIChyID4gbm1kLT5sYXN0X3R4X3JpbmcpCi0JCQkJciA9IG5tZC0+Zmlyc3RfdHhf
cmluZzsKLQkJCWlmIChyID09IG5tZC0+Y3VyX3R4X3JpbmcpCi0JCQkJYnJlYWs7Ci0JCQljb250
aW51ZTsKKwlpZiAoKG5tX3Jpbmdfc3BhY2UocmluZykgKiByaW5nLT5ucl9idWZfc2l6ZSkgPCBp
b3ZzaXplKSB7CisJCS8qCisJCSAqIE5vIG1vcmUgYXZhaWwgc3BhY2UgaW4gVFggcmluZywgdHJ5
IHRvIGZsdXNoIGl0LgorCQkgKi8KKwkJaW9jdGwobm1kLT5mZCwgTklPQ1RYU1lOQywgTlVMTCk7
CisJCXJldHVybiAoMCk7CisJfQorCisJaSA9IHJpbmctPmN1cjsKKwlidWYgPSBORVRNQVBfQlVG
KHJpbmcsIHJpbmctPnNsb3RbaV0uYnVmX2lkeCk7CisJaW92X29mZiA9IDA7CisJbGVuID0gaW92
c2l6ZTsKKwlubV9idWZfc2l6ZSA9IHJpbmctPm5yX2J1Zl9zaXplOworCW5tX29mZiA9IDA7CisK
Kwl3aGlsZSAoaW92c2l6ZSkgeworCisJCWlmICh1bmxpa2VseShpb3Zfb2ZmID09IGlvdi0+aW92
X2xlbikpIHsKKwkJCWlvdisrOworCQkJaW92X29mZiA9IDA7CiAJCX0KLQkJY3VyID0gcmluZy0+
Y3VyOwotCQlpZHggPSByaW5nLT5zbG90W2N1cl0uYnVmX2lkeDsKLQkJYnVmID0gTkVUTUFQX0JV
RihyaW5nLCBpZHgpOwogCi0JCWZvciAoaSA9IDA7IGkgPCBpb3ZjbnQ7IGkrKykgewotCQkJaWYg
KGxlbiArIGlvdltpXS5pb3ZfbGVuID4gMjA0OCkKLQkJCQlicmVhazsKLQkJCW1lbWNweSgmYnVm
W2xlbl0sIGlvdltpXS5pb3ZfYmFzZSwgaW92W2ldLmlvdl9sZW4pOwotCQkJbGVuICs9IGlvdltp
XS5pb3ZfbGVuOworCQlpZiAodW5saWtlbHkobm1fb2ZmID09IG5tX2J1Zl9zaXplKSkgeworCQkJ
cmluZy0+c2xvdFtpXS5mbGFncyA9IE5TX01PUkVGUkFHOworCQkJaSA9IG5tX3JpbmdfbmV4dChy
aW5nLCBpKTsKKwkJCWJ1ZiA9IE5FVE1BUF9CVUYocmluZywgcmluZy0+c2xvdFtpXS5idWZfaWR4
KTsKKwkJCW5tX29mZiA9IDA7CiAJCX0KLQkJcmluZy0+c2xvdFtjdXJdLmxlbiA9IGxlbjsKLQkJ
cmluZy0+aGVhZCA9IHJpbmctPmN1ciA9IG5tX3JpbmdfbmV4dChyaW5nLCBjdXIpOwotCQlubWQt
PmN1cl90eF9yaW5nID0gcjsKLQkJaW9jdGwobm1kLT5mZCwgTklPQ1RYU1lOQywgTlVMTCk7Ci0J
CWJyZWFrOworCisJCWZyYWdfc2l6ZSA9IE1JTihubV9idWZfc2l6ZSAtIG5tX29mZiwgaW92LT5p
b3ZfbGVuIC0gaW92X29mZik7CisJCW1lbWNweShidWYgKyBubV9vZmYsIGlvdi0+aW92X2Jhc2Ug
KyBpb3Zfb2ZmLCBmcmFnX3NpemUpOworCisJCWlvdnNpemUgLT0gZnJhZ19zaXplOworCQlpb3Zf
b2ZmICs9IGZyYWdfc2l6ZTsKKwkJbm1fb2ZmICs9IGZyYWdfc2l6ZTsKKworCQlyaW5nLT5zbG90
W2ldLmxlbiA9IG5tX29mZjsKIAl9CiAKKwkvKiBUaGUgbGFzdCBzbG90IG11c3Qgbm90IGhhdmUg
TlNfTU9SRUZSQUcgc2V0LiAqLworCXJpbmctPnNsb3RbaV0uZmxhZ3MgJj0gfk5TX01PUkVGUkFH
OworCXJpbmctPmhlYWQgPSByaW5nLT5jdXIgPSBubV9yaW5nX25leHQocmluZywgaSk7CisJaW9j
dGwobm1kLT5mZCwgTklPQ1RYU1lOQywgTlVMTCk7CisKIAlyZXR1cm4gKGxlbik7CiB9CiAKIHN0
YXRpYyBfX2lubGluZSBpbnQKLXBjaV92dG5ldF9uZXRtYXBfcmVhZHYoc3RydWN0IG5tX2Rlc2Mg
Km5tZCwgc3RydWN0IGlvdmVjICppb3YsIGludCBpb3ZjbnQpCitwY2lfdnRuZXRfbmV0bWFwX3Jl
YWR2KHN0cnVjdCBubV9kZXNjICpubWQsIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgaW92Y250LCBp
bnQgaW92c2l6ZSkKIHsKLQlpbnQgbGVuID0gMDsKLQlpbnQgaSA9IDA7Ci0JaW50IHI7CisJY2hh
ciAqYnVmOworCWludCBpOworCWludCBpb3Zfb2ZmOworCWludCBmcmFnX3NpemU7CisJaW50IGxl
bjsKKwlpbnQgbm1fb2ZmOwogCi0JZm9yIChyID0gbm1kLT5jdXJfcnhfcmluZzsgOyApIHsKLQkJ
c3RydWN0IG5ldG1hcF9yaW5nICpyaW5nID0gTkVUTUFQX1JYUklORyhubWQtPm5pZnAsIHIpOwot
CQl1aW50MzJfdCBjdXIsIGlkeDsKLQkJY2hhciAqYnVmOwotCQlzaXplX3QgbGVmdDsKKwlzdHJ1
Y3QgbmV0bWFwX3JpbmcgKnIgPSBORVRNQVBfUlhSSU5HKG5tZC0+bmlmcCwgbm1kLT5jdXJfcnhf
cmluZyk7CiAKLQkJaWYgKG5tX3JpbmdfZW1wdHkocmluZykpIHsKLQkJCXIrKzsKLQkJCWlmIChy
ID4gbm1kLT5sYXN0X3J4X3JpbmcpCi0JCQkJciA9IG5tZC0+Zmlyc3RfcnhfcmluZzsKLQkJCWlm
IChyID09IG5tZC0+Y3VyX3J4X3JpbmcpCi0JCQkJYnJlYWs7Ci0JCQljb250aW51ZTsKKwlpID0g
ci0+aGVhZDsKKwlidWYgPSBORVRNQVBfQlVGKHIsIHItPnNsb3RbaV0uYnVmX2lkeCk7CisJaW92
X29mZiA9IDA7CisJbm1fb2ZmID0gMDsKKwlsZW4gPSBpb3ZzaXplOworCisJd2hpbGUgKGlvdnNp
emUpIHsKKworCQlpZiAodW5saWtlbHkoaW92X29mZiA9PSBpb3YtPmlvdl9sZW4pKSB7CisJCQlp
b3YrKzsKKwkJCWlvdl9vZmYgPSAwOwogCQl9Ci0JCWN1ciA9IHJpbmctPmN1cjsKLQkJaWR4ID0g
cmluZy0+c2xvdFtjdXJdLmJ1Zl9pZHg7Ci0JCWJ1ZiA9IE5FVE1BUF9CVUYocmluZywgaWR4KTsK
LQkJbGVmdCA9IHJpbmctPnNsb3RbY3VyXS5sZW47CiAKLQkJZm9yIChpID0gMDsgaSA8IGlvdmNu
dCAmJiBsZWZ0ID4gMDsgaSsrKSB7Ci0JCQlpZiAoaW92W2ldLmlvdl9sZW4gPiBsZWZ0KQotCQkJ
CWlvdltpXS5pb3ZfbGVuID0gbGVmdDsKLQkJCW1lbWNweShpb3ZbaV0uaW92X2Jhc2UsICZidWZb
bGVuXSwgaW92W2ldLmlvdl9sZW4pOwotCQkJbGVuICs9IGlvdltpXS5pb3ZfbGVuOwotCQkJbGVm
dCAtPSBpb3ZbaV0uaW92X2xlbjsKKwkJaWYgKHVubGlrZWx5KG5tX29mZiA9PSByLT5zbG90W2ld
LmxlbikpIHsKKwkJCWkgPSBubV9yaW5nX25leHQociwgaSk7CisJCQlidWYgPSBORVRNQVBfQlVG
KHIsIHItPnNsb3RbaV0uYnVmX2lkeCk7CisJCQlubV9vZmYgPSAwOwogCQl9Ci0JCXJpbmctPmhl
YWQgPSByaW5nLT5jdXIgPSBubV9yaW5nX25leHQocmluZywgY3VyKTsKLQkJbm1kLT5jdXJfcnhf
cmluZyA9IHI7Ci0JCWlvY3RsKG5tZC0+ZmQsIE5JT0NSWFNZTkMsIE5VTEwpOwotCQlicmVhazsK
KworCQlmcmFnX3NpemUgPSBNSU4oci0+c2xvdFtpXS5sZW4gLSBubV9vZmYsIGlvdi0+aW92X2xl
biAtIGlvdl9vZmYpOworCQltZW1jcHkoaW92LT5pb3ZfYmFzZSArIGlvdl9vZmYsIGJ1ZiArIG5t
X29mZiwgZnJhZ19zaXplKTsKKworCQlpb3ZzaXplIC09IGZyYWdfc2l6ZTsKKwkJaW92X29mZiAr
PSBmcmFnX3NpemU7CisJCW5tX29mZiArPSBmcmFnX3NpemU7CiAJfQotCWZvciAoOyBpIDwgaW92
Y250OyBpKyspCi0JCWlvdltpXS5pb3ZfbGVuID0gMDsKIAorCXItPmhlYWQgPSByLT5jdXIgPSBu
bV9yaW5nX25leHQociwgaSk7CisKIAlyZXR1cm4gKGxlbik7CiB9CiAKQEAgLTQ4MSwzMiArNTAy
LDUzIEBACiBwY2lfdnRuZXRfbmV0bWFwX3R4KHN0cnVjdCBwY2lfdnRuZXRfc29mdGMgKnNjLCBz
dHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGlvdmNudCwKIAkJICAgIGludCBsZW4pCiB7Ci0Jc3RhdGlj
IGNoYXIgcGFkWzYwXTsgLyogYWxsIHplcm8gYnl0ZXMgKi8KLQogCWlmIChzYy0+dnNjX25tZCA9
PSBOVUxMKQogCQlyZXR1cm47CiAKLQkvKgotCSAqIElmIHRoZSBsZW5ndGggaXMgPCA2MCwgcGFk
IG91dCB0byB0aGF0IGFuZCBhZGQgdGhlCi0JICogZXh0cmEgemVybydkIHNlZ21lbnQgdG8gdGhl
IGlvdi4gSXQgaXMgZ3VhcmFudGVlZCB0aGF0Ci0JICogdGhlcmUgaXMgYWx3YXlzIGFuIGV4dHJh
IGlvdiBhdmFpbGFibGUgYnkgdGhlIGNhbGxlci4KLQkgKi8KLQlpZiAobGVuIDwgNjApIHsKLQkJ
aW92W2lvdmNudF0uaW92X2Jhc2UgPSBwYWQ7Ci0JCWlvdltpb3ZjbnRdLmlvdl9sZW4gPSA2MCAt
IGxlbjsKLQkJaW92Y250Kys7CisJKHZvaWQpIHBjaV92dG5ldF9uZXRtYXBfd3JpdGV2KHNjLT52
c2Nfbm1kLCBpb3YsIGlvdmNudCwgbGVuKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorbmV0
bWFwX25leHRfcGt0X2xlbihzdHJ1Y3Qgbm1fZGVzYyAqbm1kKQoreworCWludCBpOworCWludCBs
ZW47CisJc3RydWN0IG5ldG1hcF9yaW5nICpyID0gTkVUTUFQX1JYUklORyhubWQtPm5pZnAsIG5t
ZC0+Y3VyX3J4X3JpbmcpOworCisJbGVuID0gMDsKKworCWZvciAoaSA9IHItPmhlYWQ7IGkgIT0g
ci0+dGFpbDsgaSA9IG5tX3JpbmdfbmV4dChyLCBpKSkgeworCQlsZW4gKz0gci0+c2xvdFtpXS5s
ZW47CisJCWlmICghKHItPnNsb3RbaV0uZmxhZ3MgJiBOU19NT1JFRlJBRykpCisJCQlicmVhazsK
IAl9Ci0JKHZvaWQpIHBjaV92dG5ldF9uZXRtYXBfd3JpdGV2KHNjLT52c2Nfbm1kLCBpb3YsIGlv
dmNudCk7CisKKwlyZXR1cm4gKGxlbik7CiB9CiAKK3N0YXRpYyBfX2lubGluZSB2b2lkCituZXRt
YXBfZHJvcF9wa3Qoc3RydWN0IG5tX2Rlc2MgKm5tZCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgbmV0
bWFwX3JpbmcgKnIgPSBORVRNQVBfUlhSSU5HKG5tZC0+bmlmcCwgbm1kLT5jdXJfcnhfcmluZyk7
CisKKwlmb3IgKGkgPSByLT5oZWFkOyBpICE9IHItPnRhaWw7IGkgPSBubV9yaW5nX25leHQociwg
aSkpIHsKKwkJaWYgKCEoci0+c2xvdFtpXS5mbGFncyAmIE5TX01PUkVGUkFHKSkgeworCQkJci0+
aGVhZCA9IHItPmN1ciA9IG5tX3JpbmdfbmV4dChyLCBpKTsKKwkJCXJldHVybjsKKwkJfQorCX0K
K30KKwogc3RhdGljIHZvaWQKIHBjaV92dG5ldF9uZXRtYXBfcngoc3RydWN0IHBjaV92dG5ldF9z
b2Z0YyAqc2MpCiB7CiAJc3RydWN0IGlvdmVjIGlvdltWVE5FVF9NQVhTRUdTXSwgKnJpb3Y7CisJ
c3RydWN0IHZpcnRpb191c2VkIHVzZWRbVlRORVRfTUFYU0VHU107CisJc3RydWN0IHZpcnRpb19u
ZXRfcnhoZHIgKnZyeGg7CiAJc3RydWN0IHZxdWV1ZV9pbmZvICp2cTsKLQl2b2lkICp2cng7Ci0J
aW50IGxlbiwgbjsKIAl1aW50MTZfdCBpZHg7CisJaW50IGJ1ZnMsIGxlbiwgbjsKIAogCS8qCiAJ
ICogU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCB3aXRob3V0IGEgdmFsaWQgbmV0bWFwIGRlc2NyaXB0
b3IKQEAgLTUyMSw3ICs1NjMsNyBAQAogCQkvKgogCQkgKiBEcm9wIHRoZSBwYWNrZXQgYW5kIHRy
eSBsYXRlci4KIAkJICovCi0JCSh2b2lkKSBubV9uZXh0cGt0KHNjLT52c2Nfbm1kLCAodm9pZCAq
KWR1bW15YnVmKTsKKwkJbmV0bWFwX2Ryb3BfcGt0KHNjLT52c2Nfbm1kKTsKIAkJcmV0dXJuOwog
CX0KIApAQCAtNTM0LDU4ICs1NzYsNjcgQEAKIAkJICogRHJvcCB0aGUgcGFja2V0IGFuZCB0cnkg
bGF0ZXIuICBJbnRlcnJ1cHQgb24KIAkJICogZW1wdHksIGlmIHRoYXQncyBuZWdvdGlhdGVkLgog
CQkgKi8KLQkJKHZvaWQpIG5tX25leHRwa3Qoc2MtPnZzY19ubWQsICh2b2lkICopZHVtbXlidWYp
OworCQluZXRtYXBfZHJvcF9wa3Qoc2MtPnZzY19ubWQpOwogCQl2cV9lbmRjaGFpbnModnEsIDEp
OwogCQlyZXR1cm47CiAJfQogCiAJZG8gewotCQkvKgotCQkgKiBHZXQgZGVzY3JpcHRvciBjaGFp
bi4KLQkJICovCi0JCW4gPSB2cV9nZXRjaGFpbih2cSwgJmlkeCwgaW92LCBWVE5FVF9NQVhTRUdT
LCBOVUxMKTsKLQkJYXNzZXJ0KG4gPj0gMSAmJiBuIDw9IFZUTkVUX01BWFNFR1MpOworCQlsZW4g
PSBuZXRtYXBfbmV4dF9wa3RfbGVuKHNjLT52c2Nfbm1kKTsKIAotCQkvKgotCQkgKiBHZXQgYSBw
b2ludGVyIHRvIHRoZSByeCBoZWFkZXIsIGFuZCB1c2UgdGhlCi0JCSAqIGRhdGEgaW1tZWRpYXRl
bHkgZm9sbG93aW5nIGl0IGZvciB0aGUgcGFja2V0IGJ1ZmZlci4KLQkJICovCi0JCXZyeCA9IGlv
dlswXS5pb3ZfYmFzZTsKLQkJcmlvdiA9IHJ4X2lvdl90cmltKGlvdiwgJm4sIHNjLT5yeF92aGRy
bGVuKTsKLQotCQlsZW4gPSBwY2lfdnRuZXRfbmV0bWFwX3JlYWR2KHNjLT52c2Nfbm1kLCByaW92
LCBuKTsKLQotCQlpZiAobGVuID09IDApIHsKKwkJaWYgKHVubGlrZWx5KGxlbiA9PSAwKSkgewog
CQkJLyoKIAkJCSAqIE5vIG1vcmUgcGFja2V0cywgYnV0IHN0aWxsIHNvbWUgYXZhaWwgcmluZwog
CQkJICogZW50cmllcy4gIEludGVycnVwdCBpZiBuZWVkZWQvYXBwcm9wcmlhdGUuCiAJCQkgKi8K
LQkJCXZxX3JldGNoYWluKHZxKTsKIAkJCXZxX2VuZGNoYWlucyh2cSwgMCk7CiAJCQlyZXR1cm47
CiAJCX0KIAorCQlpZiAoc2MtPnJ4X21lcmdlKSB7CisJCQkvKgorCQkJICogR2V0IG1lcmdhYmxl
IGJ1ZmZlcnMuCisJCQkgKi8gCisJCQluID0gdnFfZ2V0X21yZ3J4X2J1ZnModnEsIGlvdiwgVlRO
RVRfTUFYU0VHUywgbGVuICsgc2MtPnJ4X3ZoZHJsZW4sCisJCQkJCXVzZWQsICZidWZzKTsKKwkJ
fSBlbHNlIHsKKwkJCS8qCisJCQkgKiBHZXQgZGVzY3JpcHRvciBjaGFpbi4KKwkJCSAqLworCQkJ
biA9IHZxX2dldGNoYWluKHZxLCAmaWR4LCBpb3YsIFZUTkVUX01BWFNFR1MsIE5VTEwpOworCQl9
CisKKwkJaWYgKG4gPD0gMCkgeworCQkJdnFfZW5kY2hhaW5zKHZxLCAwKTsKKwkJCXJldHVybjsK
KwkJfQorCiAJCS8qCi0JCSAqIFRoZSBvbmx5IHZhbGlkIGZpZWxkIGluIHRoZSByeCBwYWNrZXQg
aGVhZGVyIGlzIHRoZQotCQkgKiBudW1iZXIgb2YgYnVmZmVycyBpZiBtZXJnZWQgcnggYnVmcyB3
ZXJlIG5lZ290aWF0ZWQuCisJCSAqIEdldCBhIHBvaW50ZXIgdG8gdGhlIHJ4IGhlYWRlciwgYW5k
IHVzZSB0aGUKKwkJICogZGF0YSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgaXQgZm9yIHRoZSBwYWNr
ZXQgYnVmZmVyLgogCQkgKi8KLQkJbWVtc2V0KHZyeCwgMCwgc2MtPnJ4X3ZoZHJsZW4pOworCQl2
cnhoID0gaW92WzBdLmlvdl9iYXNlOworCQltZW1zZXQodnJ4aCwgMCwgc2MtPnJ4X3ZoZHJsZW4p
OwogCi0JCWlmIChzYy0+cnhfbWVyZ2UpIHsKLQkJCXN0cnVjdCB2aXJ0aW9fbmV0X3J4aGRyICp2
cnhoOworCQlyaW92ID0gcnhfaW92X3RyaW0oaW92LCAmbiwgc2MtPnJ4X3ZoZHJsZW4pOwogCi0J
CQl2cnhoID0gdnJ4OwotCQkJdnJ4aC0+dnJoX2J1ZnMgPSAxOwotCQl9CisJCSh2b2lkKXBjaV92
dG5ldF9uZXRtYXBfcmVhZHYoc2MtPnZzY19ubWQsIHJpb3YsIG4sIGxlbik7CiAKIAkJLyoKLQkJ
ICogUmVsZWFzZSB0aGlzIGNoYWluIGFuZCBoYW5kbGUgbW9yZSBjaGFpbnMuCisJCSAqIFJlbGVh
c2UgdXNlZCBkZXNjcmlwdG9ycy4KIAkJICovCi0JCXZxX3JlbGNoYWluKHZxLCBpZHgsIGxlbiAr
IHNjLT5yeF92aGRybGVuKTsKKwkJaWYgKHNjLT5yeF9tZXJnZSkgeworCQkJdnJ4aC0+dnJoX2J1
ZnMgPSBidWZzOworCQkJdnFfcmVsY2hhaW5fbXJncngodnEsIGJ1ZnMsIHVzZWQpOworCQl9IGVs
c2UgeworCQkJdnFfcmVsY2hhaW4odnEsIGlkeCwgbGVuICsgc2MtPnJ4X3ZoZHJsZW4pOworCQl9
CisKIAl9IHdoaWxlICh2cV9oYXNfZGVzY3ModnEpKTsKIAogCS8qIEludGVycnVwdCBpZiBuZWVk
ZWQsIGluY2x1ZGluZyBmb3IgTk9USUZZX09OX0VNUFRZLiAqLwogCXZxX2VuZGNoYWlucyh2cSwg
MSk7CisKIH0KIAogc3RhdGljIHZvaWQKCg==


--b1_882e2cb613975e4232abe536469afde4--



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