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>