Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 May 2014 08:56:07 -0700
From:      Anish <akgupt3@gmail.com>
To:        Andriy Gapon <avg@freebsd.org>
Cc:        FreeBSD virtualization <freebsd-virtualization@freebsd.org>, Neel Natu <neel@freebsd.org>
Subject:   Re: bhyve: svm (amd-v) update
Message-ID:  <CALnRwMRpwc=DHib%2BeooftCkSP_K6XtVuR11AceDYju=mMBE2%2Bw@mail.gmail.com>
In-Reply-To: <53748481.8010108@FreeBSD.org>
References:  <53748481.8010108@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--047d7b86cdc2c5d01904f97255e5
Content-Type: text/plain; charset=UTF-8

Hi Andriy,
 Thanks for your interest in SVM port of bhyve. I do have patch to sync it
to http://svnweb.freebsd.org/base?view=revision&revision=263780(3/26). If
patches looks good to you, we can submit it. I have been testing it on
Phenom box which lacks some of newer SVM features.

Thanks and regards,
Anish


On Thu, May 15, 2014 at 2:10 AM, Andriy Gapon <avg@freebsd.org> wrote:

>
> It seems that the bhyve_svm branch is a bit behind the latest interface
> changes
> in head.  Is anyone working on sync-ing up the branch with the head?
>
> Some examples:
> - change of init method in vmm_ops
> - addition of resume, vlapic_init and vlapic_cleanup methods to vmm_ops
> - replacement of lapic_pending_intr and lapic_intr_accepted with
> vlapic_pending_intr and vlapic_intr_accepted
> - changes in struct vm_exit
> - VMEXIT_EPT_FAULT ==> VMEXIT_NESTED_FAULT
>
> Thanks!
> --
> Andriy Gapon
>
> _______________________________________________
> freebsd-virtualization@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
> To unsubscribe, send any mail to "
> freebsd-virtualization-unsubscribe@freebsd.org"
>

--047d7b86cdc2c5d01904f97255e5
Content-Type: application/octet-stream; name="bhyve_svm_HEAD_r263780.patch"
Content-Disposition: attachment; filename="bhyve_svm_HEAD_r263780.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hv880xux0

ZGlmZiAtYXVyUCAteCAnKi5vcmlnJyAteCAuc3ZuIC9tbnQvc3luY19uZXh0Mi9iaHl2ZV9zdm1f
SEVBRF9yMjYzNzgwX2Jhc2UvL3N5cy9hbWQ2NC92bW0vYW1kL25wdC5jIC9tbnQvc3luY19uZXh0
Mi9iaHl2ZV9zdm1fSEVBRF9yMjYzNzgwX1dJUC9zeXMvYW1kNjQvdm1tL2FtZC9ucHQuYwotLS0g
L21udC9zeW5jX25leHQyL2JoeXZlX3N2bV9IRUFEX3IyNjM3ODBfYmFzZS8vc3lzL2FtZDY0L3Zt
bS9hbWQvbnB0LmMJMjAxNC0wNC0xMSAxMzo1MTo0NS4wMDAwMDAwMDAgKzAwMDAKKysrIC9tbnQv
c3luY19uZXh0Mi9iaHl2ZV9zdm1fSEVBRF9yMjYzNzgwX1dJUC9zeXMvYW1kNjQvdm1tL2FtZC9u
cHQuYwkyMDE0LTA0LTA2IDA0OjM0OjE3LjAwMDAwMDAwMCArMDAwMApAQCAtNTIsMTQgKzUyLDE3
IEBACiBzdGF0aWMgaW50IG5wdF9mbGFnczsKIFNZU0NUTF9JTlQoX2h3X3ZtbV9ucHQsIE9JRF9B
VVRPLCBwbWFwX2ZsYWdzLCBDVExGTEFHX1JELAogCSZucHRfZmxhZ3MsIDAsIE5VTEwpOworCisj
ZGVmaW5lIE5QVF9JUElNQVNLCTB4RkYKIC8qCiAgKiBBTUQgbmVzdGVkIHBhZ2UgdGFibGUgaW5p
dC4KICAqLwogaW50Ci1zdm1fbnB0X2luaXQodm9pZCkKK3N2bV9ucHRfaW5pdChpbnQgaXBpbnVt
KQogewogCWludCBlbmFibGVfc3VwZXJwYWdlID0gMTsKIAorCW5wdF9mbGFncyA9IGlwaW51bSAm
IE5QVF9JUElNQVNLOwogCVRVTkFCTEVfSU5UX0ZFVENIKCJody52bW0ubnB0LmVuYWJsZV9zdXBl
cnBhZ2UiLCAmZW5hYmxlX3N1cGVycGFnZSk7CiAJaWYgKGVuYWJsZV9zdXBlcnBhZ2UpCiAJCW5w
dF9mbGFncyB8PSBQTUFQX1BERV9TVVBFUlBBR0U7IApkaWZmIC1hdXJQIC14ICcqLm9yaWcnIC14
IC5zdm4gL21udC9zeW5jX25leHQyL2JoeXZlX3N2bV9IRUFEX3IyNjM3ODBfYmFzZS8vc3lzL2Ft
ZDY0L3ZtbS9hbWQvbnB0LmggL21udC9zeW5jX25leHQyL2JoeXZlX3N2bV9IRUFEX3IyNjM3ODBf
V0lQL3N5cy9hbWQ2NC92bW0vYW1kL25wdC5oCi0tLSAvbW50L3N5bmNfbmV4dDIvYmh5dmVfc3Zt
X0hFQURfcjI2Mzc4MF9iYXNlLy9zeXMvYW1kNjQvdm1tL2FtZC9ucHQuaAkyMDE0LTA0LTExIDEz
OjUxOjQ1LjAwMDAwMDAwMCArMDAwMAorKysgL21udC9zeW5jX25leHQyL2JoeXZlX3N2bV9IRUFE
X3IyNjM3ODBfV0lQL3N5cy9hbWQ2NC92bW0vYW1kL25wdC5oCTIwMTQtMDQtMDYgMDQ6MzQ6MTcu
MDAwMDAwMDAwICswMDAwCkBAIC0zMSw3ICszMSw3IEBACiAKIHN0cnVjdCBzdm1fc29mdGM7CiAK
LWludCAJc3ZtX25wdF9pbml0KHZvaWQpOworaW50IAlzdm1fbnB0X2luaXQoaW50IGlwaW51bSk7
CiBzdHJ1Y3QJdm1zcGFjZSAqc3ZtX25wdF9hbGxvYyh2bV9vZmZzZXRfdCBtaW4sIHZtX29mZnNl
dF90IG1heCk7CiB2b2lkCXN2bV9ucHRfZnJlZShzdHJ1Y3Qgdm1zcGFjZSAqdm1zcGFjZSk7CiAj
ZW5kaWYgLyogX1NWTV9OUFRfSF8gKi8KZGlmZiAtYXVyUCAteCAnKi5vcmlnJyAteCAuc3ZuIC9t
bnQvc3luY19uZXh0Mi9iaHl2ZV9zdm1fSEVBRF9yMjYzNzgwX2Jhc2UvL3N5cy9hbWQ2NC92bW0v
YW1kL3N2bS5jIC9tbnQvc3luY19uZXh0Mi9iaHl2ZV9zdm1fSEVBRF9yMjYzNzgwX1dJUC9zeXMv
YW1kNjQvdm1tL2FtZC9zdm0uYwotLS0gL21udC9zeW5jX25leHQyL2JoeXZlX3N2bV9IRUFEX3Iy
NjM3ODBfYmFzZS8vc3lzL2FtZDY0L3ZtbS9hbWQvc3ZtLmMJMjAxNC0wNC0xMSAxMzo1MTo0NS4w
MDAwMDAwMDAgKzAwMDAKKysrIC9tbnQvc3luY19uZXh0Mi9iaHl2ZV9zdm1fSEVBRF9yMjYzNzgw
X1dJUC9zeXMvYW1kNjQvdm1tL2FtZC9zdm0uYwkyMDE0LTA0LTEyIDExOjUxOjUzLjAwMDAwMDAw
MCArMDAwMApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPG1hY2hpbmUvc3BlY2lhbHJlZy5o
PgogI2luY2x1ZGUgPG1hY2hpbmUvc2VnbWVudHMuaD4KICNpbmNsdWRlIDxtYWNoaW5lL3ZtbS5o
PgorI2luY2x1ZGUgPG1hY2hpbmUvdm1tX2Rldi5oPgogCiAjaW5jbHVkZSA8eDg2L2FwaWNyZWcu
aD4KIApAQCAtNTMsNiArNTQsOCBAQAogI2luY2x1ZGUgInZtbV9tc3IuaCIKICNpbmNsdWRlICJ2
bW1fc3RhdC5oIgogI2luY2x1ZGUgInZtbV9rdHIuaCIKKyNpbmNsdWRlICJ2bGFwaWMuaCIKKyNp
bmNsdWRlICJ2bGFwaWNfcHJpdi5oIgogCiAjaW5jbHVkZSAieDg2LmgiCiAjaW5jbHVkZSAidm1j
Yi5oIgpAQCAtNzUsNiArNzgsNyBAQAogI2RlZmluZSBBTURfQ1BVSURfU1ZNX1BBVVNFX0ZUSAkJ
QklUKDEyKSAvKiBQYXVzZSBmaWx0ZXIgdGhyZXNob2xkICovCiAKIE1BTExPQ19ERUZJTkUoTV9T
Vk0sICJzdm0iLCAic3ZtIik7CitNQUxMT0NfREVGSU5FKE1fU1ZNX1ZMQVBJQywgInN2bS12bGFw
aWMiLCAic3ZtLXZsYXBpYyIpOwogCiAvKiBQZXItQ1BVIGNvbnRleHQgYXJlYS4gKi8KIGV4dGVy
biBzdHJ1Y3QgcGNwdSBfX3BjcHVbXTsKQEAgLTI0OSw3ICsyNTMsNyBAQAogICogRW5hYmxlIFNW
TSBvbiBDUFUgYW5kIGluaXRpYWxpemUgbmVzdGVkIHBhZ2UgdGFibGUgaC93LgogICovCiBzdGF0
aWMgaW50Ci1zdm1faW5pdCh2b2lkKQorc3ZtX2luaXQoaW50IGlwaW51bSkKIHsKIAlpbnQgZXJy
OwogCkBAIC0yNTgsNyArMjYyLDcgQEAKIAkJcmV0dXJuIChlcnIpOwogCQogCi0Jc3ZtX25wdF9p
bml0KCk7CisJc3ZtX25wdF9pbml0KGlwaW51bSk7CiAJCiAJLyogU3RhcnQgU1ZNIG9uIGFsbCBD
UFVzICovCiAJc21wX3JlbmRlenZvdXMoTlVMTCwgc3ZtX2VuYWJsZSwgTlVMTCwgTlVMTCk7CkBA
IC0yNjYsNiArMjcwLDExIEBACiAJcmV0dXJuICgwKTsKIH0KIAorc3RhdGljIHZvaWQKK3N2bV9y
ZXN0b3JlKHZvaWQpCit7CisJc3ZtX2VuYWJsZShOVUxMKTsKK30JCQogLyoKICAqIEdldCBpbmRl
eCBhbmQgYml0IHBvc2l0aW9uIGZvciBhIE1TUiBpbiBNU1IgcGVybWlzc2lvbgogICogYml0bWFw
LiBUd28gYml0cyBhcmUgdXNlZCBmb3IgZWFjaCBNU1IsIGxvd2VyIGJpdCBpcwpAQCAtMzY1LDcg
KzM3NCw2IEBACiAJCiAJcmV0dXJuICgwKTsKIH0KLQkJCiAvKgogICogSW5pdGlhbGlzZSBhIHZp
cnR1YWwgbWFjaGluZS4KICAqLwpAQCAtNTE5LDYgKzUyNywyOSBAQAogCX0KIH0KIAorc3RhdGlj
IGVudW0gdmllX2NwdV9tb2RlCitzdm1fdmNwdV9tb2RlKHVpbnQ2NF90IGVmZXIpCit7CisKKwlp
ZiAoZWZlciAmIEVGRVJfTE1BKQorCQlyZXR1cm4gKENQVV9NT0RFXzY0QklUKTsKKwllbHNlCisJ
CXJldHVybiAoQ1BVX01PREVfQ09NUEFUSUJJTElUWSk7Cit9CisKK3N0YXRpYyBlbnVtIHZpZV9w
YWdpbmdfbW9kZQorc3ZtX3BhZ2luZ19tb2RlKHVpbnQ2NF90IGNyMCwgdWludDY0X3QgY3I0LCB1
aW50NjRfdCBlZmVyKQoreworCisJaWYgKChjcjAgJiBDUjBfUEcpID09IDApCisJCXJldHVybiAo
UEFHSU5HX01PREVfRkxBVCk7CisJaWYgKChjcjQgJiBDUjRfUEFFKSA9PSAwKQorCQlyZXR1cm4g
KFBBR0lOR19NT0RFXzMyKTsKKwlpZiAoZWZlciAmIEVGRVJfTE1FKQorCQlyZXR1cm4gKFBBR0lO
R19NT0RFXzY0KTsKKwllbHNlCisJCXJldHVybiAoUEFHSU5HX01PREVfUEFFKTsKK30KIC8qCiAg
KiBEZXRlcm1pbmUgdGhlIGNhdXNlIG9mIHZpcnR1YWwgY3B1IGV4aXQgYW5kIGhhbmRsZSBWTUVY
SVQuCiAgKiBSZXR1cm46IGZhbHNlIC0gQnJlYWsgdmNwdSBleGVjdXRpb24gbG9vcCBhbmQgaGFu
ZGxlIHZtZXhpdApAQCAtNTQ3LDcgKzU3OCw3IEBACiAJdXBkYXRlX3JpcCA9IHRydWU7CiAJbG9v
cCA9IHRydWU7CiAJdm1leGl0LT5leGl0Y29kZSA9IFZNX0VYSVRDT0RFX1ZNWDsKLQl2bWV4aXQt
PnUudm14LmVycm9yID0gMDsKKwl2bWV4aXQtPnUudm14LnN0YXR1cyA9IDA7CiAKIAlzd2l0Y2gg
KGNvZGUpIHsKIAkJY2FzZQlWTUNCX0VYSVRfTUM6IC8qIE1hY2hpbmUgQ2hlY2suICovCkBAIC02
NjcsNyArNjk4LDYgQEAKIAkJY2FzZSBWTUNCX0VYSVRfTlBGOgogCQkJbG9vcCA9IGZhbHNlOwog
CQkJdXBkYXRlX3JpcCA9IGZhbHNlOwotCQkJdm1tX3N0YXRfaW5jcihzdm1fc2MtPnZtLCB2Y3B1
LCBWTUVYSVRfRVBUX0ZBVUxULCAxKTsKIAogICAgICAgICAJCWlmIChpbmZvMSAmIFZNQ0JfTlBG
X0lORk8xX1JTVikgewogIAkJCQlWQ1BVX0NUUjIoc3ZtX3NjLT52bSwgdmNwdSwgIlNWTV9FUlI6
TlBUIgpAQCAtNjg2LDE1ICs3MTYsMjQgQEAKIAkJCQl2bWV4aXQtPnUucGFnaW5nLmdwYSA9IGlu
Zm8yOwogCQkJCXZtZXhpdC0+dS5wYWdpbmcuZmF1bHRfdHlwZSA9IAogCQkJCQlzdm1fbnBmX3Bh
Z2luZyhpbmZvMSk7CisJCQkJdm1tX3N0YXRfaW5jcihzdm1fc2MtPnZtLCB2Y3B1LCAKKwkJCQkJ
Vk1FWElUX05FU1RFRF9GQVVMVCwgMSk7CiAJCQl9IGVsc2UgaWYgKHN2bV9ucGZfZW11bF9mYXVs
dChpbmZvMSkpIHsKLSAJCQkJVkNQVV9DVFIzKHN2bV9zYy0+dm0sIHZjcHUsICJTVk06TlBGLWlu
c3RfZW11bCwiCisgCQkJCVZDUFVfQ1RSMyhzdm1fc2MtPnZtLCB2Y3B1LCAiU1ZNOk5QRiBpbnN0
X2VtdWwsIgogCQkJCQkiUklQOjB4JWx4IElORk8xOjB4JWx4IElORk8yOjB4JWx4IC5cbiIsCiAJ
CQkJCXN0YXRlLT5yaXAsIGluZm8xLCBpbmZvMik7CiAJCQkJdm1leGl0LT5leGl0Y29kZSA9IFZN
X0VYSVRDT0RFX0lOU1RfRU1VTDsKIAkJCQl2bWV4aXQtPnUuaW5zdF9lbXVsLmdwYSA9IGluZm8y
OwogCQkJCXZtZXhpdC0+dS5pbnN0X2VtdWwuZ2xhID0gVklFX0lOVkFMSURfR0xBOwogCQkJCXZt
ZXhpdC0+dS5pbnN0X2VtdWwuY3IzID0gc3RhdGUtPmNyMzsKKwkJCQl2bWV4aXQtPnUuaW5zdF9l
bXVsLmNwdV9tb2RlID0gCisJCQkJCXN2bV92Y3B1X21vZGUoc3RhdGUtPmVmZXIpOworCQkJCXZt
ZXhpdC0+dS5pbnN0X2VtdWwucGFnaW5nX21vZGUgPQorCQkJCQlzdm1fcGFnaW5nX21vZGUoc3Rh
dGUtPmNyMCwgc3RhdGUtPmNyNCwKKwkJCQkJCSBzdGF0ZS0+ZWZlcik7CiAJCQkJdm1leGl0LT5p
bnN0X2xlbmd0aCA9IFZJRV9JTlNUX1NJWkU7CisJCQkJdm1tX3N0YXRfaW5jcihzdm1fc2MtPnZt
LCB2Y3B1LCAKKwkJCQkJVk1FWElUX0lOU1RfRU1VTCwgMSk7CiAJCQl9CiAJCQkKIAkJCWJyZWFr
OwpAQCAtNzYyLDcgKzgwMSw3IEBACiAJCXJldHVybiAoMCk7CiAKIAkgLyogSW5qZWN0IE5NSSwg
dmVjdG9yIG51bWJlciBpcyBub3QgdXNlZC4qLwotCWlmICh2bWNiX2V2ZW50aW5qZWN0KGN0cmws
IFZNX05NSSwgSURUX05NSSwgMCwgZmFsc2UpKSB7CisJaWYgKHZtY2JfZXZlbnRpbmplY3QoY3Ry
bCwgVk1DQl9FVkVOVElOSl9UWVBFX05NSSwgSURUX05NSSwgMCwgZmFsc2UpKSB7CiAJCVZDUFVf
Q1RSMChzdm1fc2MtPnZtLCB2Y3B1LCAiU1ZNOk5NSSBpbmplY3Rpb24gZmFpbGVkLlxuIik7CiAJ
CXJldHVybiAoRUlPKTsKIAl9CkBAIC03NzksMTAgKzgxOCwxMSBAQAogICogSW5qZWN0IGV2ZW50
IHRvIHZpcnR1YWwgY3B1LgogICovCiBzdGF0aWMgdm9pZAotc3ZtX2lual9pbnRlcnJ1cHRzKHN0
cnVjdCBzdm1fc29mdGMgKnN2bV9zYywgaW50IHZjcHUpCitzdm1faW5qX2ludGVycnVwdHMoc3Ry
dWN0IHN2bV9zb2Z0YyAqc3ZtX3NjLCBpbnQgdmNwdSwgc3RydWN0IHZsYXBpYyAqdmxhcGljKQog
ewogCXN0cnVjdCB2bWNiX2N0cmwgKmN0cmw7CiAJc3RydWN0IHZtY2Jfc3RhdGUgKnN0YXRlOwor
CXN0cnVjdCB2bV9leGNlcHRpb24gZXhjOwogCWludCB2ZWN0b3I7CiAJCiAJS0FTU0VSVCh2Y3B1
IDwgc3ZtX3NjLT52Y3B1X2NudCwgKCJHdWVzdCBkb2Vzbid0IGhhdmUgVkNQVSVkIiwgdmNwdSkp
OwpAQCAtODAyLDE3ICs4NDIsMjYgQEAKIAkJVkNQVV9DVFIwKHN2bV9zYy0+dm0sIHZjcHUsICJT
Vk06R3Vlc3QgaW4gaW50ZXJydXB0IHNoYWRvdy5cbiIpOwogCQlyZXR1cm47CiAJfQotCisJCisJ
aWYgKHZtX2V4Y2VwdGlvbl9wZW5kaW5nKHN2bV9zYy0+dm0sIHZjcHUsICZleGMpKSB7CisJCUtB
U1NFUlQoZXhjLnZlY3RvciA+PSAwICYmIGV4Yy52ZWN0b3IgPCAzMiwKKwkJCSgiRXhjZXB0aW9u
IHZlY3RvciUgaW52YWxpZCIsIGV4Yy52ZWN0b3IpKTsKKwkJaWYgKHZtY2JfZXZlbnRpbmplY3Qo
Y3RybCwgVk1DQl9FVkVOVElOSl9UWVBFX0VYQ0VQVElPTiwgCisJCQlleGMudmVjdG9yLCBleGMu
ZXJyb3JfY29kZSwgCisJCQlleGMuZXJyb3JfY29kZV92YWxpZCkpIHsKKwkJCVZDUFVfQ1RSMShz
dm1fc2MtPnZtLCB2Y3B1LCAiU1ZNOkV4Y2VwdGlvbiVkIGluamVjdGlvbiIKKwkJCQkiIGZhaWxl
ZC5cbiIsIGV4Yy52ZWN0b3IpOworCQkJcmV0dXJuOworCQl9CisJfQogCS8qIE5NSSBldmVudCBo
YXMgcHJpb3JpdHkgb3ZlciBpbnRlcnJ1cHRzLiovCiAJaWYgKHN2bV9pbmplY3Rfbm1pKHN2bV9z
YywgdmNwdSkpIHsKIAkJcmV0dXJuOwogCX0KIAotCXZlY3RvciA9IGxhcGljX3BlbmRpbmdfaW50
cihzdm1fc2MtPnZtLCB2Y3B1KTsKLQotCS8qIE5vIGludGVycnVwdCBpcyBwZW5kaW5nLiAqLwkK
LQlpZiAodmVjdG9yIDwgMCkKLQkJcmV0dXJuOworICAgICAgICAvKiBBc2sgdGhlIGxvY2FsIGFw
aWMgZm9yIGEgdmVjdG9yIHRvIGluamVjdCAqLworICAgICAgICBpZiAoIXZsYXBpY19wZW5kaW5n
X2ludHIodmxhcGljLCAmdmVjdG9yKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAJCiAJaWYg
KHZlY3RvciA8IDMyIHx8IHZlY3RvciA+IDI1NSkgewogCQlWQ1BVX0NUUjEoc3ZtX3NjLT52bSwg
dmNwdSwgIlNWTV9FUlI6RXZlbnQgaW5qZWN0aW9uIgpAQCAtODI2LDE0ICs4NzUsMTQgQEAKIAkJ
cmV0dXJuOwogCX0KIAotCWlmICh2bWNiX2V2ZW50aW5qZWN0KGN0cmwsIFZNX0hXX0lOVFIsIHZl
Y3RvciwgMCwgZmFsc2UpKSB7CisJaWYgKHZtY2JfZXZlbnRpbmplY3QoY3RybCwgVk1DQl9FVkVO
VElOSl9UWVBFX0lOVFIsIHZlY3RvciwgMCwgZmFsc2UpKSB7CiAJCVZDUFVfQ1RSMShzdm1fc2Mt
PnZtLCB2Y3B1LCAiU1ZNOkV2ZW50IGluamVjdGlvbiBmYWlsZWQgdG8iCiAJCQkiIHZlY3Rvcj0l
ZC5cbiIsIHZlY3Rvcik7CiAJCXJldHVybjsKIAl9CQogCiAJLyogQWNrbm93bGVkZ2UgdGhhdCBl
dmVudCBpcyBhY2NlcHRlZC4qLwotCWxhcGljX2ludHJfYWNjZXB0ZWQoc3ZtX3NjLT52bSwgdmNw
dSwgdmVjdG9yKTsKKwl2bGFwaWNfaW50cl9hY2NlcHRlZCh2bGFwaWMsIHZlY3Rvcik7CiAJVkNQ
VV9DVFIxKHN2bV9zYy0+dm0sIHZjcHUsICJTVk06ZXZlbnQgaW5qZWN0ZWQsdmVjdG9yPSVkLlxu
IiwgdmVjdG9yKTsKIH0KIApAQCAtODg3LDcgKzkzNiw4IEBACiAgKiBTdGFydCB2Y3B1IHdpdGgg
c3BlY2lmaWVkIFJJUC4KICAqLwogc3RhdGljIGludAotc3ZtX3ZtcnVuKHZvaWQgKmFyZywgaW50
IHZjcHUsIHJlZ2lzdGVyX3QgcmlwLCBwbWFwX3QgcG1hcCkKK3N2bV92bXJ1bih2b2lkICphcmcs
IGludCB2Y3B1LCByZWdpc3Rlcl90IHJpcCwgcG1hcF90IHBtYXAsIAorCXZvaWQgKnJlbmRfY29v
a2llLCB2b2lkICpzdXNwZW5kZWRfY29va2llKQogewogCXN0cnVjdCBzdm1fcmVnY3R4ICpoY3R4
LCAqZ2N0eDsKIAlzdHJ1Y3Qgc3ZtX3NvZnRjICpzdm1fc2M7CkBAIC04OTUsMTcgKzk0NSwyMSBA
QAogCXN0cnVjdCB2bWNiX3N0YXRlICpzdGF0ZTsKIAlzdHJ1Y3Qgdm1jYl9jdHJsICpjdHJsOwog
CXN0cnVjdCB2bV9leGl0ICp2bWV4aXQ7CisJc3RydWN0IHZsYXBpYyAqdmxhcGljOworCXN0cnVj
dCB2bSAqdm07CiAJdWludDY0X3Qgdm1jYl9wYTsKIAlzdGF0aWMgdWludDY0X3QgaG9zdF9jcjI7
CiAJYm9vbCBsb29wOwkvKiBDb250aW51ZSB2Y3B1IGV4ZWN1dGlvbiBsb29wLiAqLwogCiAJbG9v
cCA9IHRydWU7CiAJc3ZtX3NjID0gYXJnOwotCQorCXZtID0gc3ZtX3NjLT52bTsKKwogCXZjcHVz
dGF0ZSA9IHN2bV9nZXRfdmNwdShzdm1fc2MsIHZjcHUpOwogCXN0YXRlID0gc3ZtX2dldF92bWNi
X3N0YXRlKHN2bV9zYywgdmNwdSk7CiAJY3RybCA9IHN2bV9nZXRfdm1jYl9jdHJsKHN2bV9zYywg
dmNwdSk7Ci0Jdm1leGl0ID0gdm1fZXhpdGluZm8oc3ZtX3NjLT52bSwgdmNwdSk7CisJdm1leGl0
ID0gdm1fZXhpdGluZm8odm0sIHZjcHUpOworCXZsYXBpYyA9IHZtX2xhcGljKHZtLCB2Y3B1KTsK
IAogCWdjdHggPSBzdm1fZ2V0X2d1ZXN0X3JlZ2N0eChzdm1fc2MsIHZjcHUpOwogCWhjdHggPSAm
aG9zdF9jdHhbY3VyY3B1XTsgCkBAIC05MTMsNyArOTY3LDcgQEAKIAogCWlmICh2Y3B1c3RhdGUt
Pmxhc3RjcHUgIT0gY3VyY3B1KSB7CiAJCS8qIFZpcnR1YWwgQ1BVIGlzIHJ1bm5pbmcgb24gYSBk
aWlmZXJlbnQgQ1BVIG5vdy4qLwotCQl2bW1fc3RhdF9pbmNyKHN2bV9zYy0+dm0sIHZjcHUsIFZD
UFVfTUlHUkFUSU9OUywgMSk7CisJCXZtbV9zdGF0X2luY3Iodm0sIHZjcHUsIFZDUFVfTUlHUkFU
SU9OUywgMSk7CiAKIAkJLyoKIAkJICogRmx1c2ggYWxsIFRMQiBtYXBwaW5nIGZvciB0aGlzIGd1
ZXN0IG9uIHRoaXMgQ1BVLApAQCAtOTQ2LDcgKzEwMDAsNyBAQAogCX0KIAogCXZjcHVzdGF0ZS0+
bGFzdGNwdSA9IGN1cmNwdTsKLQlWQ1BVX0NUUjMoc3ZtX3NjLT52bSwgdmNwdSwgIlNWTTpFbnRl
ciB2bXJ1biBvbGQgUklQOjB4JWx4IgorCVZDUFVfQ1RSMyh2bSwgdmNwdSwgIlNWTTpFbnRlciB2
bXJ1biBvbGQgUklQOjB4JWx4IgogCQkiIG5ldyBSSVA6MHglbHggaW5zdCBsZW49JWRcbiIsCiAJ
CXN0YXRlLT5yaXAsIHJpcCwgdm1leGl0LT5pbnN0X2xlbmd0aCk7CiAJLyogVXBkYXRlIEd1ZXN0
IFJJUCAqLwpAQCAtOTU3LDkgKzEwMTEsMjUgQEAKIAkJIC8qIFdlIGFyZSBhc2tlZCB0byBnaXZl
IHRoZSBjcHUgYnkgc2NoZWR1bGVyLiAqLwogCQlpZiAoY3VydGhyZWFkLT50ZF9mbGFncyAmIChU
REZfQVNUUEVORElORyB8IFRERl9ORUVEUkVTQ0hFRCkpIHsKIAkJCXZtZXhpdC0+ZXhpdGNvZGUg
PSBWTV9FWElUQ09ERV9CT0dVUzsKLQkJCXZtbV9zdGF0X2luY3Ioc3ZtX3NjLT52bSwgdmNwdSwg
Vk1FWElUX0FTVFBFTkRJTkcsIDEpOwotCQkJVkNQVV9DVFIxKHN2bV9zYy0+dm0sIHZjcHUsIAot
CQkJCSJTVk06IGdhdmUgdXAgQ1BVLCBSSVA6MHglbHhcbiIsIHN0YXRlLT5yaXApOworCQkJdm1t
X3N0YXRfaW5jcih2bSwgdmNwdSwgVk1FWElUX0FTVFBFTkRJTkcsIDEpOworCQkJVkNQVV9DVFIx
KHZtLCB2Y3B1LCAKKwkJCQkiU1ZNOiBBU1RQRU5ESU5HLCBSSVA6MHglbHhcbiIsIHN0YXRlLT5y
aXApOworCQkJdm1leGl0LT5yaXAgPSBzdGF0ZS0+cmlwOworCQkJYnJlYWs7CisJCX0KKworCQlp
ZiAodmNwdV9zdXNwZW5kZWQoc3VzcGVuZGVkX2Nvb2tpZSkpIHsKKwkJCXZtZXhpdC0+ZXhpdGNv
ZGUgPSBWTV9FWElUQ09ERV9TVVNQRU5ERUQ7CisJCQl2bWV4aXQtPnJpcCA9IHN0YXRlLT5yaXA7
CisJCQlicmVhazsKKwkJfQorCisJCWlmICh2Y3B1X3JlbmRlenZvdXNfcGVuZGluZyhyZW5kX2Nv
b2tpZSkpIHsKKwkJCXZtZXhpdC0+ZXhpdGNvZGUgPSBWTV9FWElUQ09ERV9SRU5ERVpWT1VTOwor
CQkJdm1tX3N0YXRfaW5jcih2bSwgdmNwdSwgVk1FWElUX1JFTkRFWlZPVVMsIDEpOworCQkJVkNQ
VV9DVFIxKHZtLCB2Y3B1LCAKKwkJCQkiU1ZNOiBWQ1BVIHJlbmRlenZvdXMsIFJJUDoweCVseFxu
IiwgCisJCQkJc3RhdGUtPnJpcCk7CiAJCQl2bWV4aXQtPnJpcCA9IHN0YXRlLT5yaXA7CiAJCQli
cmVhazsKIAkJfQpAQCAtOTY4LDcgKzEwMzgsNyBAQAogCQkKIAkJc3ZtX2hhbmRsZV9leGl0aW50
aW5mbyhzdm1fc2MsIHZjcHUpOwogCQkKLQkJKHZvaWQpc3ZtX2lual9pbnRlcnJ1cHRzKHN2bV9z
YywgdmNwdSk7CisJCSh2b2lkKXN2bV9pbmpfaW50ZXJydXB0cyhzdm1fc2MsIHZjcHUsIHZsYXBp
Yyk7CiAJCiAJCS8qIENoYW5nZSBUU1MgdHlwZSB0byBhdmFpbGFibGUuKi8KIAkJc2V0dXBfdHNz
X3R5cGUoKTsKQEAgLTEwMTcsNyArMTA4Nyw3IEBACiAJCS8qIEhhbmRsZSAjVk1FWElUIGFuZCBp
ZiByZXF1aXJlZCByZXR1cm4gdG8gdXNlciBzcGFjZS4gKi8KIAkJbG9vcCA9IHN2bV92bWV4aXQo
c3ZtX3NjLCB2Y3B1LCB2bWV4aXQpOwogCQl2Y3B1c3RhdGUtPmxvb3ArKzsKLQkJdm1tX3N0YXRf
aW5jcihzdm1fc2MtPnZtLCB2Y3B1LCBWTUVYSVRfQ09VTlQsIDEpOworCQl2bW1fc3RhdF9pbmNy
KHZtLCB2Y3B1LCBWTUVYSVRfQ09VTlQsIDEpOwogCiAJfSB3aGlsZSAobG9vcCk7CiAJCQpAQCAt
MTIwOSwyNCArMTI3OSw2IEBACiB9CiAKIHN0YXRpYyBpbnQKLXN2bV9pbmplY3RfZXZlbnQodm9p
ZCAqYXJnLCBpbnQgdmNwdSwgaW50IHR5cGUsIGludCB2ZWN0b3IsCi0JCSAgdWludDMyX3QgZXJy
b3IsIGludCBlY192YWxpZCkKLXsKLQlzdHJ1Y3Qgc3ZtX3NvZnRjICpzdm1fc2M7Ci0Jc3RydWN0
IHZtY2JfY3RybCAqY3RybDsKLQotCXN2bV9zYyA9IGFyZzsKLQlLQVNTRVJUKHZjcHUgPCBzdm1f
c2MtPnZjcHVfY250LCAoIkd1ZXN0IGRvZXNuJ3QgaGF2ZSBWQ1BVJWQiLCB2Y3B1KSk7Ci0KLQlj
dHJsID0gc3ZtX2dldF92bWNiX2N0cmwoc3ZtX3NjLCB2Y3B1KTsKLQlWQ1BVX0NUUjMoc3ZtX3Nj
LT52bSwgdmNwdSwgIkluamVjdGluZyBldmVudCB0eXBlOjB4JXggdmVjdG9yOjB4JXgiCi0JCSJl
cnJvcjoweCV4XG4iLCB0eXBlLCB2ZWN0b3IsIGVycm9yKTsKLQotCXJldHVybiAodm1jYl9ldmVu
dGluamVjdChjdHJsLCB0eXBlLCB2ZWN0b3IsIGVycm9yLAotCQllY192YWxpZCA/IFRSVUUgOiBG
QUxTRSkpOwotfQotCi1zdGF0aWMgaW50CiBzdm1fc2V0Y2FwKHZvaWQgKmFyZywgaW50IHZjcHUs
IGludCB0eXBlLCBpbnQgdmFsKQogewogCXN0cnVjdCBzdm1fc29mdGMgKnN2bV9zYzsKQEAgLTEz
MjQsOSArMTM3NiwzNSBAQAogCXJldHVybiAoMCk7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgdmxhcGlj
ICoKK3N2bV92bGFwaWNfaW5pdCh2b2lkICphcmcsIGludCB2Y3B1aWQpCit7CisJc3RydWN0IHN2
bV9zb2Z0YyAqc3ZtX3NjOworCXN0cnVjdCB2bGFwaWMgKnZsYXBpYzsKKworCXN2bV9zYyA9IGFy
ZzsKKwl2bGFwaWMgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCB2bGFwaWMpLCBNX1NWTV9WTEFQSUMs
IE1fV0FJVE9LIHwgTV9aRVJPKTsKKwl2bGFwaWMtPnZtID0gc3ZtX3NjLT52bTsKKwl2bGFwaWMt
PnZjcHVpZCA9IHZjcHVpZDsKKwl2bGFwaWMtPmFwaWNfcGFnZSA9IChzdHJ1Y3QgTEFQSUMgKikm
c3ZtX3NjLT5hcGljX3BhZ2VbdmNwdWlkXTsKKworCXZsYXBpY19pbml0KHZsYXBpYyk7CisJCisJ
cmV0dXJuICh2bGFwaWMpOworfQorCitzdGF0aWMgdm9pZAorc3ZtX3ZsYXBpY19jbGVhbnVwKHZv
aWQgKmFyZywgc3RydWN0IHZsYXBpYyAqdmxhcGljKQoreworCisgICAgICAgIHZsYXBpY19jbGVh
bnVwKHZsYXBpYyk7CisgICAgICAgIGZyZWUodmxhcGljLCBNX1NWTV9WTEFQSUMpOworfQorCiBz
dHJ1Y3Qgdm1tX29wcyB2bW1fb3BzX2FtZCA9IHsKIAlzdm1faW5pdCwKIAlzdm1fY2xlYW51cCwK
Kwlzdm1fcmVzdG9yZSwKIAlzdm1fdm1pbml0LAogCXN2bV92bXJ1biwKIAlzdm1fdm1jbGVhbnVw
LApAQCAtMTMzNCw5ICsxNDEyLDEwIEBACiAJc3ZtX3NldHJlZywKIAlzdm1fZ2V0ZGVzYywKIAlz
dm1fc2V0ZGVzYywKLQlzdm1faW5qZWN0X2V2ZW50LAogCXN2bV9nZXRjYXAsCiAJc3ZtX3NldGNh
cCwKIAlzdm1fbnB0X2FsbG9jLAotCXN2bV9ucHRfZnJlZQorCXN2bV9ucHRfZnJlZSwKKwlzdm1f
dmxhcGljX2luaXQsCisJc3ZtX3ZsYXBpY19jbGVhbnVwCQogfTsKZGlmZiAtYXVyUCAteCAnKi5v
cmlnJyAteCAuc3ZuIC9tbnQvc3luY19uZXh0Mi9iaHl2ZV9zdm1fSEVBRF9yMjYzNzgwX2Jhc2Uv
L3N5cy9hbWQ2NC92bW0vYW1kL3N2bV9zb2Z0Yy5oIC9tbnQvc3luY19uZXh0Mi9iaHl2ZV9zdm1f
SEVBRF9yMjYzNzgwX1dJUC9zeXMvYW1kNjQvdm1tL2FtZC9zdm1fc29mdGMuaAotLS0gL21udC9z
eW5jX25leHQyL2JoeXZlX3N2bV9IRUFEX3IyNjM3ODBfYmFzZS8vc3lzL2FtZDY0L3ZtbS9hbWQv
c3ZtX3NvZnRjLmgJMjAxNC0wNC0xMSAxMzo1MTo0NS4wMDAwMDAwMDAgKzAwMDAKKysrIC9tbnQv
c3luY19uZXh0Mi9iaHl2ZV9zdm1fSEVBRF9yMjYzNzgwX1dJUC9zeXMvYW1kNjQvdm1tL2FtZC9z
dm1fc29mdGMuaAkyMDE0LTA0LTA2IDA0OjM0OjE3LjAwMDAwMDAwMCArMDAwMApAQCAtNjEsNiAr
NjEsNyBAQAogCSAqLwogCXVpbnQ4X3QJbXNyX2JpdG1hcFtTVk1fTVNSX0JJVE1BUF9TSVpFXTsK
IAorCXVpbnQ4X3QgYXBpY19wYWdlW1ZNX01BWENQVV1bUEFHRV9TSVpFXTsKIAkvKiBOZXN0ZWQg
UGFnaW5nICovCiAJdm1fb2Zmc2V0X3QgCW5wdHA7CQogCmRpZmYgLWF1clAgLXggJyoub3JpZycg
LXggLnN2biAvbW50L3N5bmNfbmV4dDIvYmh5dmVfc3ZtX0hFQURfcjI2Mzc4MF9iYXNlLy9zeXMv
YW1kNjQvdm1tL2FtZC92bWNiLmMgL21udC9zeW5jX25leHQyL2JoeXZlX3N2bV9IRUFEX3IyNjM3
ODBfV0lQL3N5cy9hbWQ2NC92bW0vYW1kL3ZtY2IuYwotLS0gL21udC9zeW5jX25leHQyL2JoeXZl
X3N2bV9IRUFEX3IyNjM3ODBfYmFzZS8vc3lzL2FtZDY0L3ZtbS9hbWQvdm1jYi5jCTIwMTQtMDQt
MTEgMTM6NTE6NDUuMDAwMDAwMDAwICswMDAwCisrKyAvbW50L3N5bmNfbmV4dDIvYmh5dmVfc3Zt
X0hFQURfcjI2Mzc4MF9XSVAvc3lzL2FtZDY0L3ZtbS9hbWQvdm1jYi5jCTIwMTQtMDQtMDYgMDQ6
MzQ6MTcuMDAwMDAwMDAwICswMDAwCkBAIC0zNTQsMjUgKzM1NCwxMiBAQAogICogSW5qZWN0IGFu
IGV2ZW50IHRvIHZjcHUgYXMgZGVzY3JpYmVkIGluIHNlY3Rpb24gMTUuMjAsICJFdmVudCBpbmpl
Y3Rpb24iLgogICovCiBpbnQKLXZtY2JfZXZlbnRpbmplY3Qoc3RydWN0IHZtY2JfY3RybCAqY3Ry
bCwgaW50IHR5cGUsIGludCB2ZWN0b3IsCit2bWNiX2V2ZW50aW5qZWN0KHN0cnVjdCB2bWNiX2N0
cmwgKmN0cmwsIGludCBpbnRyX3R5cGUsIGludCB2ZWN0b3IsCiAJCSB1aW50MzJfdCBlcnJvciwg
Ym9vbCBlY192YWxpZCkKIHsKLQlpbnQgaW50cl90eXBlOwotCi0Jc3RhdGljIHVpbnQ4X3QgIHN2
bV9pbnRyX3R5cGVfbWFwW1ZNX0VWRU5UX01BWF0gPSB7Ci0JCS0xLAkJCQkvKiBWTV9FVkVOVF9O
T05FICovCi0JCVZNQ0JfRVZFTlRJTkpfVFlQRV9JTlRSLAkvKiBWTV9IV19JTlRSICovCi0JCVZN
Q0JfRVZFTlRJTkpfVFlQRV9OTUksCSAJLyogVk1fTk1JICovCi0JCVZNQ0JfRVZFTlRJTkpfVFlQ
RV9FWENFUFRJT04sCS8qIFZNX0hXX0VYQ0VQVElPTiAqLwotCQlWTUNCX0VWRU5USU5KX1RZUEVf
SU5UbiwgCS8qIFZNX1NXX0lOVFIsIElOVCAqLwotCQlWTUNCX0VWRU5USU5KX1RZUEVfSU5Ubiwg
CS8qIFZNX1BSSVZfU1dfRVhDRVBUSU9OICovCi0JCVZNQ0JfRVZFTlRJTkpfVFlQRV9JTlRuLCAJ
LyogVk1fU1dfRVhDRVBUSU9OICovCi0JfTsKLQotCWludHJfdHlwZSA9IHN2bV9pbnRyX3R5cGVf
bWFwW3R5cGVdOwogCWlmIChpbnRyX3R5cGUgPCBWTUNCX0VWRU5USU5KX1RZUEVfSU5UUiB8fAog
CSAgICBpbnRyX3R5cGUgPiBWTUNCX0VWRU5USU5KX1RZUEVfSU5UbikgewotCQlFUlIoIkV2ZW50
OiVkIGlzIG5vdCBzdXBwb3J0ZWQgYnkgU1ZNLlxuIiwgdHlwZSk7CisJCUVSUigiRXZlbnQ6JWQg
aXMgbm90IHN1cHBvcnRlZCBieSBTVk0uXG4iLCBpbnRyX3R5cGUpOwogCQlyZXR1cm4gKEVJTlZB
TCk7CiAJfQogCg==
--047d7b86cdc2c5d01904f97255e5--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALnRwMRpwc=DHib%2BeooftCkSP_K6XtVuR11AceDYju=mMBE2%2Bw>