Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Aug 2019 13:55:50 -0700
From:      Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
To:        Warner Losh <imp@bsdimp.com>
Cc:        mms.vanbreukelingen@gmail.com, Konstantin Belousov <kostikbel@gmail.com>,  Hans Petter Selasky <hps@selasky.org>,  "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>
Subject:   Re: Kernel-Crash when working with ubt0
Message-ID:  <CAFPOs6r140WzpSM_fEhCdhQ7OGMHq1xhkacWzv6EDVZph097UQ@mail.gmail.com>
In-Reply-To: <CANCZdfr%2B21-L8C61ThW2CQi8bjVGcvBPxxDCNoXyZXN0Bv44pA@mail.gmail.com>
References:  <1115053193.64543.1567031661382.ref@mail.yahoo.com> <1115053193.64543.1567031661382@mail.yahoo.com> <CANCZdfr%2B21-L8C61ThW2CQi8bjVGcvBPxxDCNoXyZXN0Bv44pA@mail.gmail.com>

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

On Wed, Aug 28, 2019 at 6:48 PM Warner Losh <imp@bsdimp.com> wrote:
> patch -p1 worked for me to apply it.
>
> And it worked just fine for everything once I rebooted. The patch looked fine to my eye.

thanks Warner

please find attached (more complete) patch that should address issue
of holding lock over copyin/out (or so i claim).

thanks
max

--000000000000b5f150059147bbf7
Content-Type: text/plain; charset="US-ASCII"; name="ng_btsocket.diff.txt"
Content-Disposition: attachment; filename="ng_btsocket.diff.txt"
Content-Transfer-Encoding: base64
Content-ID: <f_jzx63ub20>
X-Attachment-Id: f_jzx63ub20

SW5kZXg6IHN5cy9uZXRncmFwaC9ibHVldG9vdGgvc29ja2V0L25nX2J0c29ja2V0X2hjaV9yYXcu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBzeXMvbmV0Z3JhcGgvYmx1ZXRvb3RoL3NvY2tldC9uZ19idHNvY2tl
dF9oY2lfcmF3LmMJKHJldmlzaW9uIDM1MTYxMSkKKysrIHN5cy9uZXRncmFwaC9ibHVldG9vdGgv
c29ja2V0L25nX2J0c29ja2V0X2hjaV9yYXcuYwkod29ya2luZyBjb3B5KQpAQCAtMTE1NiwxNSAr
MTE1NiwxNSBAQAogCQlpZiAocC0+bnVtX2VudHJpZXMgPD0gMCB8fCAKIAkJICAgIHAtPm51bV9l
bnRyaWVzID4gTkdfSENJX01BWF9ORUlHSEJPUl9OVU0gfHwKIAkJICAgIHAtPmVudHJpZXMgPT0g
TlVMTCkgewotCQkJZXJyb3IgPSBFSU5WQUw7Ci0JCQlicmVhazsKKwkJCW10eF91bmxvY2soJnBj
Yi0+cGNiX210eCk7CisJCQlyZXR1cm4gKEVJTlZBTCk7CiAJCX0KIAogCQlOR19NS01FU1NBR0Uo
bXNnLCBOR01fSENJX0NPT0tJRSwKIAkJCU5HTV9IQ0lfTk9ERV9HRVRfTkVJR0hCT1JfQ0FDSEUs
IDAsIE1fTk9XQUlUKTsKIAkJaWYgKG1zZyA9PSBOVUxMKSB7Ci0JCQllcnJvciA9IEVOT01FTTsK
LQkJCWJyZWFrOworCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoRU5P
TUVNKTsKIAkJfQogCQluZ19idHNvY2tldF9oY2lfcmF3X2dldF90b2tlbigmbXNnLT5oZWFkZXIu
dG9rZW4pOwogCQlwY2ItPnRva2VuID0gbXNnLT5oZWFkZXIudG9rZW47CkBAIC0xMTczLDcgKzEx
NzMsOCBAQAogCQlOR19TRU5EX01TR19QQVRIKGVycm9yLCBuZ19idHNvY2tldF9oY2lfcmF3X25v
ZGUsIG1zZywgcGF0aCwgMCk7CiAJCWlmIChlcnJvciAhPSAwKSB7CiAJCQlwY2ItPnRva2VuID0g
MDsKLQkJCWJyZWFrOworCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAo
ZXJyb3IpOwogCQl9CiAKIAkJZXJyb3IgPSBtc2xlZXAoJnBjYi0+bXNnLCAmcGNiLT5wY2JfbXR4
LApAQCAtMTE4MSwxNiArMTE4MiwyMSBAQAogCQkJCW5nX2J0c29ja2V0X2hjaV9yYXdfaW9jdGxf
dGltZW91dCAqIGh6KTsKIAkJcGNiLT50b2tlbiA9IDA7CiAKLQkJaWYgKGVycm9yICE9IDApCi0J
CQlicmVhazsKKwkJaWYgKGVycm9yICE9IDApIHsKKwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210
eCk7CisJCQlyZXR1cm4gKGVycm9yKTsKKwkJfQogCi0JCWlmIChwY2ItPm1zZyAhPSBOVUxMICYm
Ci0JCSAgICBwY2ItPm1zZy0+aGVhZGVyLmNtZCA9PSBOR01fSENJX05PREVfR0VUX05FSUdIQk9S
X0NBQ0hFKSB7CisJCW1zZyA9IHBjYi0+bXNnOworCQlwY2ItPm1zZyA9IE5VTEw7CisKKwkJbXR4
X3VubG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCisJCWlmIChtc2cgIT0gTlVMTCAmJgorCQkgICAg
bXNnLT5oZWFkZXIuY21kID09IE5HTV9IQ0lfTk9ERV9HRVRfTkVJR0hCT1JfQ0FDSEUpIHsKIAkJ
CS8qIFJldHVybiBkYXRhIGJhY2sgdG8gdXNlciBzcGFjZSAqLwotCQkJcDEgPSAobmdfaGNpX25v
ZGVfZ2V0X25laWdoYm9yX2NhY2hlX2VwICopCi0JCQkJKHBjYi0+bXNnLT5kYXRhKTsKLQkJCXAy
ID0gKG5nX2hjaV9ub2RlX25laWdoYm9yX2NhY2hlX2VudHJ5X2VwICopCi0JCQkJKHAxICsgMSk7
CisJCQlwMSA9IChuZ19oY2lfbm9kZV9nZXRfbmVpZ2hib3JfY2FjaGVfZXAgKikobXNnLT5kYXRh
KTsKKwkJCXAyID0gKG5nX2hjaV9ub2RlX25laWdoYm9yX2NhY2hlX2VudHJ5X2VwICopKHAxICsg
MSk7CiAKIAkJCXAtPm51bV9lbnRyaWVzID0gbWluKHAtPm51bV9lbnRyaWVzLCBwMS0+bnVtX2Vu
dHJpZXMpOwogCQkJaWYgKHAtPm51bV9lbnRyaWVzID4gMCkKQEAgLTEyMDAsOCArMTIwNiw5IEBA
CiAJCX0gZWxzZQogCQkJZXJyb3IgPSBFSU5WQUw7CiAKLQkJTkdfRlJFRV9NU0cocGNiLT5tc2cp
OyAvKiBjaGVja3MgZm9yICE9IE5VTEwgKi8KLQkJfWJyZWFrOworCQlOR19GUkVFX01TRyhtc2cp
OyAvKiBjaGVja3MgZm9yICE9IE5VTEwgKi8KKwkJcmV0dXJuIChlcnJvcik7CisJCX0gLyogTk9U
UkVBQ0hFRCAqLwogCiAJY2FzZSBTSU9DX0hDSV9SQVdfTk9ERV9HRVRfQ09OX0xJU1Q6IHsKIAkJ
c3RydWN0IG5nX2J0c29ja2V0X2hjaV9yYXdfY29uX2xpc3QJKnAgPSAKQEAgLTEyMTIsMTUgKzEy
MTksMTUgQEAKIAkJaWYgKHAtPm51bV9jb25uZWN0aW9ucyA9PSAwIHx8CiAJCSAgICBwLT5udW1f
Y29ubmVjdGlvbnMgPiBOR19IQ0lfTUFYX0NPTl9OVU0gfHwKIAkJICAgIHAtPmNvbm5lY3Rpb25z
ID09IE5VTEwpIHsKLQkJCWVycm9yID0gRUlOVkFMOwotCQkJYnJlYWs7CisJCQltdHhfdW5sb2Nr
KCZwY2ItPnBjYl9tdHgpOworCQkJcmV0dXJuIChFSU5WQUwpOwogCQl9CiAKIAkJTkdfTUtNRVNT
QUdFKG1zZywgTkdNX0hDSV9DT09LSUUsIE5HTV9IQ0lfTk9ERV9HRVRfQ09OX0xJU1QsCiAJCQkw
LCBNX05PV0FJVCk7CiAJCWlmIChtc2cgPT0gTlVMTCkgewotCQkJZXJyb3IgPSBFTk9NRU07Ci0J
CQlicmVhazsKKwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4gKEVOT01F
TSk7CiAJCX0KIAkJbmdfYnRzb2NrZXRfaGNpX3Jhd19nZXRfdG9rZW4oJm1zZy0+aGVhZGVyLnRv
a2VuKTsKIAkJcGNiLT50b2tlbiA9IG1zZy0+aGVhZGVyLnRva2VuOwpAQCAtMTIyOSw3ICsxMjM2
LDggQEAKIAkJTkdfU0VORF9NU0dfUEFUSChlcnJvciwgbmdfYnRzb2NrZXRfaGNpX3Jhd19ub2Rl
LCBtc2csIHBhdGgsIDApOwogCQlpZiAoZXJyb3IgIT0gMCkgewogCQkJcGNiLT50b2tlbiA9IDA7
Ci0JCQlicmVhazsKKwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4gKGVy
cm9yKTsKIAkJfQogCiAJCWVycm9yID0gbXNsZWVwKCZwY2ItPm1zZywgJnBjYi0+cGNiX210eCwK
QEAgLTEyMzcsMTMgKzEyNDUsMjAgQEAKIAkJCQluZ19idHNvY2tldF9oY2lfcmF3X2lvY3RsX3Rp
bWVvdXQgKiBoeik7CiAJCXBjYi0+dG9rZW4gPSAwOwogCi0JCWlmIChlcnJvciAhPSAwKQotCQkJ
YnJlYWs7CisJCWlmIChlcnJvciAhPSAwKSB7CisJCQltdHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgp
OworCQkJcmV0dXJuIChlcnJvcik7CisJCX0KIAotCQlpZiAocGNiLT5tc2cgIT0gTlVMTCAmJgot
CQkgICAgcGNiLT5tc2ctPmhlYWRlci5jbWQgPT0gTkdNX0hDSV9OT0RFX0dFVF9DT05fTElTVCkg
eworCQltc2cgPSBwY2ItPm1zZzsKKwkJcGNiLT5tc2cgPSBOVUxMOworCisJCW10eF91bmxvY2so
JnBjYi0+cGNiX210eCk7CisKKwkJaWYgKG1zZyAhPSBOVUxMICYmCisJCSAgICBtc2ctPmhlYWRl
ci5jbWQgPT0gTkdNX0hDSV9OT0RFX0dFVF9DT05fTElTVCkgewogCQkJLyogUmV0dXJuIGRhdGEg
YmFjayB0byB1c2VyIHNwYWNlICovCi0JCQlwMSA9IChuZ19oY2lfbm9kZV9jb25fbGlzdF9lcCAq
KShwY2ItPm1zZy0+ZGF0YSk7CisJCQlwMSA9IChuZ19oY2lfbm9kZV9jb25fbGlzdF9lcCAqKSht
c2ctPmRhdGEpOwogCQkJcDIgPSAobmdfaGNpX25vZGVfY29uX2VwICopKHAxICsgMSk7CiAKIAkJ
CXAtPm51bV9jb25uZWN0aW9ucyA9IG1pbihwLT5udW1fY29ubmVjdGlvbnMsCkBAIC0xMjU1LDgg
KzEyNzAsOSBAQAogCQl9IGVsc2UKIAkJCWVycm9yID0gRUlOVkFMOwogCi0JCU5HX0ZSRUVfTVNH
KHBjYi0+bXNnKTsgLyogY2hlY2tzIGZvciAhPSBOVUxMICovCi0JCX0gYnJlYWs7CisJCU5HX0ZS
RUVfTVNHKG1zZyk7IC8qIGNoZWNrcyBmb3IgIT0gTlVMTCAqLworCQlyZXR1cm4gKGVycm9yKTsK
KwkJfSAvKiBOT1RSRUFDSEVEICovCiAKIAljYXNlIFNJT0NfSENJX1JBV19OT0RFX0dFVF9MSU5L
X1BPTElDWV9NQVNLOiB7CiAJCXN0cnVjdCBuZ19idHNvY2tldF9oY2lfcmF3X25vZGVfbGlua19w
b2xpY3lfbWFzawkqcCA9IApAQCAtMTMzMiwxNSArMTM0OCwxNSBAQAogCQlzdHJ1Y3Qgbm9kZWlu
Zm8JCQkJCSpuaSA9IG5sLT5uYW1lczsKIAogCQlpZiAobmwtPm51bV9uYW1lcyA9PSAwKSB7Ci0J
CQllcnJvciA9IEVJTlZBTDsKLQkJCWJyZWFrOworCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4
KTsKKwkJCXJldHVybiAoRUlOVkFMKTsKIAkJfQogCiAJCU5HX01LTUVTU0FHRShtc2csIE5HTV9H
RU5FUklDX0NPT0tJRSwgTkdNX0xJU1ROQU1FUywKIAkJCTAsIE1fTk9XQUlUKTsKIAkJaWYgKG1z
ZyA9PSBOVUxMKSB7Ci0JCQllcnJvciA9IEVOT01FTTsKLQkJCWJyZWFrOworCQkJbXR4X3VubG9j
aygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoRU5PTUVNKTsKIAkJfQogCQluZ19idHNvY2tl
dF9oY2lfcmF3X2dldF90b2tlbigmbXNnLT5oZWFkZXIudG9rZW4pOwogCQlwY2ItPnRva2VuID0g
bXNnLT5oZWFkZXIudG9rZW47CkBAIC0xMzQ5LDcgKzEzNjUsOCBAQAogCQlOR19TRU5EX01TR19Q
QVRIKGVycm9yLCBuZ19idHNvY2tldF9oY2lfcmF3X25vZGUsIG1zZywgIi46IiwgMCk7CiAJCWlm
IChlcnJvciAhPSAwKSB7CiAJCQlwY2ItPnRva2VuID0gMDsKLQkJCWJyZWFrOworCQkJbXR4X3Vu
bG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoZXJyb3IpOwogCQl9CiAKIAkJZXJyb3Ig
PSBtc2xlZXAoJnBjYi0+bXNnLCAmcGNiLT5wY2JfbXR4LApAQCAtMTM1NywxMiArMTM3NCwxOSBA
QAogCQkJCW5nX2J0c29ja2V0X2hjaV9yYXdfaW9jdGxfdGltZW91dCAqIGh6KTsKIAkJcGNiLT50
b2tlbiA9IDA7CiAKLQkJaWYgKGVycm9yICE9IDApCi0JCQlicmVhazsKKwkJaWYgKGVycm9yICE9
IDApIHsKKwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4gKGVycm9yKTsK
KwkJfQogCi0JCWlmIChwY2ItPm1zZyAhPSBOVUxMICYmIHBjYi0+bXNnLT5oZWFkZXIuY21kID09
IE5HTV9MSVNUTkFNRVMpIHsKKwkJbXNnID0gcGNiLT5tc2c7CisJCXBjYi0+bXNnID0gTlVMTDsK
KworCQltdHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCisJCWlmIChtc2cgIT0gTlVMTCAmJiBt
c2ctPmhlYWRlci5jbWQgPT0gTkdNX0xJU1ROQU1FUykgewogCQkJLyogUmV0dXJuIGRhdGEgYmFj
ayB0byB1c2VyIHNwYWNlICovCi0JCQlzdHJ1Y3QgbmFtZWxpc3QJKm5sMSA9IChzdHJ1Y3QgbmFt
ZWxpc3QgKikgcGNiLT5tc2ctPmRhdGE7CisJCQlzdHJ1Y3QgbmFtZWxpc3QJKm5sMSA9IChzdHJ1
Y3QgbmFtZWxpc3QgKikgbXNnLT5kYXRhOwogCQkJc3RydWN0IG5vZGVpbmZvCSpuaTEgPSAmbmwx
LT5ub2RlaW5mb1swXTsKIAogCQkJd2hpbGUgKG5sLT5udW1fbmFtZXMgPiAwICYmIG5sMS0+bnVt
bmFtZXMgPiAwKSB7CkBAIC0xMzg1LDggKzE0MDksOSBAQAogCQl9IGVsc2UKIAkJCWVycm9yID0g
RUlOVkFMOwogCi0JCU5HX0ZSRUVfTVNHKHBjYi0+bXNnKTsgLyogY2hlY2tzIGZvciAhPSBOVUxM
ICovCi0JCX0gYnJlYWs7CisJCU5HX0ZSRUVfTVNHKG1zZyk7IC8qIGNoZWNrcyBmb3IgIT0gTlVM
TCAqLworCQlyZXR1cm4gKGVycm9yKTsKKwkJfSAvKiBOT1RSRUFDSEVEICovCiAKIAlkZWZhdWx0
OgogCQllcnJvciA9IEVJTlZBTDsKSW5kZXg6IHN5cy9uZXRncmFwaC9ibHVldG9vdGgvc29ja2V0
L25nX2J0c29ja2V0X2wyY2FwX3Jhdy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9uZXRncmFwaC9ibHVl
dG9vdGgvc29ja2V0L25nX2J0c29ja2V0X2wyY2FwX3Jhdy5jCShyZXZpc2lvbiAzNTE2MTEpCisr
KyBzeXMvbmV0Z3JhcGgvYmx1ZXRvb3RoL3NvY2tldC9uZ19idHNvY2tldF9sMmNhcF9yYXcuYwko
d29ya2luZyBjb3B5KQpAQCAtODUyLDE1ICs4NTIsMTUgQEAKIAkJaWYgKHAtPm51bV9jb25uZWN0
aW9ucyA9PSAwIHx8CiAJCSAgICBwLT5udW1fY29ubmVjdGlvbnMgPiBOR19MMkNBUF9NQVhfQ09O
X05VTSB8fAogCQkgICAgcC0+Y29ubmVjdGlvbnMgPT0gTlVMTCkgewotCQkJZXJyb3IgPSBFSU5W
QUw7Ci0JCQlicmVhazsKKwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4g
KEVJTlZBTCk7CiAJCX0KIAogCQlOR19NS01FU1NBR0UobXNnLCBOR01fTDJDQVBfQ09PS0lFLCBO
R01fTDJDQVBfTk9ERV9HRVRfQ09OX0xJU1QsCiAJCQkwLCBNX05PV0FJVCk7CiAJCWlmIChtc2cg
PT0gTlVMTCkgewotCQkJZXJyb3IgPSBFTk9NRU07Ci0JCQlicmVhazsKKwkJCW10eF91bmxvY2so
JnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4gKEVOT01FTSk7CiAJCX0KIAkJbmdfYnRzb2NrZXRf
bDJjYXBfcmF3X2dldF90b2tlbigmbXNnLT5oZWFkZXIudG9rZW4pOwogCQlwY2ItPnRva2VuID0g
bXNnLT5oZWFkZXIudG9rZW47CkBAIC04NzAsNyArODcwLDggQEAKIAkJCXBjYi0+cnQtPmhvb2ss
IDApOwogCQlpZiAoZXJyb3IgIT0gMCkgewogCQkJcGNiLT50b2tlbiA9IDA7Ci0JCQlicmVhazsK
KwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4gKGVycm9yKTsKIAkJfQog
CiAJCWVycm9yID0gbXNsZWVwKCZwY2ItPm1zZywgJnBjYi0+cGNiX210eCwgUFpFUk98UENBVENI
LCAibDJjdGwiLApAQCAtODc3LDEzICs4NzgsMjAgQEAKIAkJCQluZ19idHNvY2tldF9sMmNhcF9y
YXdfaW9jdGxfdGltZW91dCAqIGh6KTsKIAkJcGNiLT50b2tlbiA9IDA7CiAKLQkJaWYgKGVycm9y
ICE9IDApCi0JCQlicmVhazsKKwkJaWYgKGVycm9yICE9IDApIHsKKwkJCW10eF91bmxvY2soJnBj
Yi0+cGNiX210eCk7CisJCQlyZXR1cm4gKGVycm9yKTsKKwkJfQogCi0JCWlmIChwY2ItPm1zZyAh
PSBOVUxMICYmCi0JCSAgICBwY2ItPm1zZy0+aGVhZGVyLmNtZCA9PSBOR01fTDJDQVBfTk9ERV9H
RVRfQ09OX0xJU1QpIHsKKwkJbXNnID0gcGNiLT5tc2c7CisJCXBjYi0+bXNnID0gTlVMTDsKKwor
CQltdHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCisJCWlmIChtc2cgIT0gTlVMTCAmJgorCQkg
ICAgbXNnLT5oZWFkZXIuY21kID09IE5HTV9MMkNBUF9OT0RFX0dFVF9DT05fTElTVCkgewogCQkJ
LyogUmV0dXJuIGRhdGEgYmFjayB0byB1c2VyIHNwYWNlICovCi0JCQlwMSA9IChuZ19sMmNhcF9u
b2RlX2Nvbl9saXN0X2VwICopKHBjYi0+bXNnLT5kYXRhKTsKKwkJCXAxID0gKG5nX2wyY2FwX25v
ZGVfY29uX2xpc3RfZXAgKikobXNnLT5kYXRhKTsKIAkJCXAyID0gKG5nX2wyY2FwX25vZGVfY29u
X2VwICopKHAxICsgMSk7CiAKIAkJCXAtPm51bV9jb25uZWN0aW9ucyA9IG1pbihwLT5udW1fY29u
bmVjdGlvbnMsCkBAIC04OTUsOCArOTAzLDkgQEAKIAkJfSBlbHNlCiAJCQllcnJvciA9IEVJTlZB
TDsKIAotCQlOR19GUkVFX01TRyhwY2ItPm1zZyk7IC8qIGNoZWNrcyBmb3IgIT0gTlVMTCAqLwot
CQl9IGJyZWFrOworCQlOR19GUkVFX01TRyhtc2cpOyAvKiBjaGVja3MgZm9yICE9IE5VTEwgKi8K
KwkJcmV0dXJuIChlcnJvcik7CisJCX0gLyogTk9UUkVBQ0hFRCAqLwogCiAJY2FzZSBTSU9DX0wy
Q0FQX05PREVfR0VUX0NIQU5fTElTVDogewogCQlzdHJ1Y3QgbmdfYnRzb2NrZXRfbDJjYXBfcmF3
X2NoYW5fbGlzdAkqcCA9CkBAIC05MDcsMTUgKzkxNiwxNSBAQAogCQlpZiAocC0+bnVtX2NoYW5u
ZWxzID09IDAgfHwKIAkJICAgIHAtPm51bV9jaGFubmVscyA+IE5HX0wyQ0FQX01BWF9DSEFOX05V
TSB8fAogCQkgICAgcC0+Y2hhbm5lbHMgPT0gTlVMTCkgewotCQkJZXJyb3IgPSBFSU5WQUw7Ci0J
CQlicmVhazsKKwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4gKEVJTlZB
TCk7CiAJCX0KICAKIAkJTkdfTUtNRVNTQUdFKG1zZywgTkdNX0wyQ0FQX0NPT0tJRSwKIAkJCU5H
TV9MMkNBUF9OT0RFX0dFVF9DSEFOX0xJU1QsIDAsIE1fTk9XQUlUKTsKIAkJaWYgKG1zZyA9PSBO
VUxMKSB7Ci0JCQllcnJvciA9IEVOT01FTTsKLQkJCWJyZWFrOworCQkJbXR4X3VubG9jaygmcGNi
LT5wY2JfbXR4KTsKKwkJCXJldHVybiAoRU5PTUVNKTsKIAkJfQogCQluZ19idHNvY2tldF9sMmNh
cF9yYXdfZ2V0X3Rva2VuKCZtc2ctPmhlYWRlci50b2tlbik7CiAJCXBjYi0+dG9rZW4gPSBtc2ct
PmhlYWRlci50b2tlbjsKQEAgLTkyNSw3ICs5MzQsOCBAQAogCQkJcGNiLT5ydC0+aG9vaywgMCk7
CiAJCWlmIChlcnJvciAhPSAwKSB7CiAJCQlwY2ItPnRva2VuID0gMDsKLQkJCWJyZWFrOworCQkJ
bXR4X3VubG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoZXJyb3IpOwogCQl9CiAKIAkJ
ZXJyb3IgPSBtc2xlZXAoJnBjYi0+bXNnLCAmcGNiLT5wY2JfbXR4LCBQWkVST3xQQ0FUQ0gsICJs
MmN0bCIsCkBAIC05MzIsMTMgKzk0MiwyMCBAQAogCQkJCW5nX2J0c29ja2V0X2wyY2FwX3Jhd19p
b2N0bF90aW1lb3V0ICogaHopOwogCQlwY2ItPnRva2VuID0gMDsKIAotCQlpZiAoZXJyb3IgIT0g
MCkKLQkJCWJyZWFrOworCQlpZiAoZXJyb3IgIT0gMCkgeworCQkJbXR4X3VubG9jaygmcGNiLT5w
Y2JfbXR4KTsKKwkJCXJldHVybiAoZXJyb3IpOworCQl9CiAKLQkJaWYgKHBjYi0+bXNnICE9IE5V
TEwgJiYKLQkJICAgIHBjYi0+bXNnLT5oZWFkZXIuY21kID09IE5HTV9MMkNBUF9OT0RFX0dFVF9D
SEFOX0xJU1QpIHsKKwkJbXNnID0gcGNiLT5tc2c7CisJCXBjYi0+bXNnID0gTlVMTDsKKworCQlt
dHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCisJCWlmIChtc2cgIT0gTlVMTCAmJgorCQkgICAg
bXNnLT5oZWFkZXIuY21kID09IE5HTV9MMkNBUF9OT0RFX0dFVF9DSEFOX0xJU1QpIHsKIAkJCS8q
IFJldHVybiBkYXRhIGJhY2sgdG8gdXNlciBzcGFjZSAqLwotCQkJcDEgPSAobmdfbDJjYXBfbm9k
ZV9jaGFuX2xpc3RfZXAgKikocGNiLT5tc2ctPmRhdGEpOworCQkJcDEgPSAobmdfbDJjYXBfbm9k
ZV9jaGFuX2xpc3RfZXAgKikobXNnLT5kYXRhKTsKIAkJCXAyID0gKG5nX2wyY2FwX25vZGVfY2hh
bl9lcCAqKShwMSArIDEpOwogCiAJCQlwLT5udW1fY2hhbm5lbHMgPSBtaW4ocC0+bnVtX2NoYW5u
ZWxzLCAKQEAgLTk1MCw4ICs5NjcsOSBAQAogCQl9IGVsc2UKIAkJCWVycm9yID0gRUlOVkFMOwog
Ci0JCU5HX0ZSRUVfTVNHKHBjYi0+bXNnKTsgLyogY2hlY2tzIGZvciAhPSBOVUxMICovCi0JCX0g
YnJlYWs7CisJCU5HX0ZSRUVfTVNHKG1zZyk7IC8qIGNoZWNrcyBmb3IgIT0gTlVMTCAqLworCQly
ZXR1cm4gKGVycm9yKTsKKwkJfSAvKiBOT1RSRUFDSEVEICovCiAKIAljYXNlIFNJT0NfTDJDQVBf
TDJDQV9QSU5HOiB7CiAJCXN0cnVjdCBuZ19idHNvY2tldF9sMmNhcF9yYXdfcGluZwkqcCA9IApA
QCAtOTYxLDggKzk3OSw4IEBACiAKIAkJaWYgKChwLT5lY2hvX3NpemUgIT0gMCAmJiBwLT5lY2hv
X2RhdGEgPT0gTlVMTCkgfHwKIAkJICAgICBwLT5lY2hvX3NpemUgPiBOR19MMkNBUF9NQVhfRUNI
T19TSVpFKSB7Ci0JCQllcnJvciA9IEVJTlZBTDsKLQkJCWJyZWFrOworCQkJbXR4X3VubG9jaygm
cGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoRUlOVkFMKTsKIAkJfQogCiAJCU5HX01LTUVTU0FH
RShtc2csIE5HTV9MMkNBUF9DT09LSUUsCkBAIC05NjksOCArOTg3LDggQEAKIAkJCU5HTV9MMkNB
UF9MMkNBX1BJTkcsIHNpemVvZigqaXApICsgcC0+ZWNob19zaXplLAogCQkJTV9OT1dBSVQpOwog
CQlpZiAobXNnID09IE5VTEwpIHsKLQkJCWVycm9yID0gRU5PTUVNOwotCQkJYnJlYWs7CisJCQlt
dHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCQkJcmV0dXJuIChFTk9NRU0pOwogCQl9CiAJCW5n
X2J0c29ja2V0X2wyY2FwX3Jhd19nZXRfdG9rZW4oJm1zZy0+aGVhZGVyLnRva2VuKTsKIAkJcGNi
LT50b2tlbiA9IG1zZy0+aGVhZGVyLnRva2VuOwpAQCAtOTgxLDExICs5OTksMTUgQEAKIAkJaXAt
PmVjaG9fc2l6ZSA9IHAtPmVjaG9fc2l6ZTsKIAogCQlpZiAoaXAtPmVjaG9fc2l6ZSA+IDApIHsK
KwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CiAJCQllcnJvciA9IGNvcHlpbihwLT5lY2hv
X2RhdGEsIGlwICsgMSwgcC0+ZWNob19zaXplKTsKKwkJCW10eF9sb2NrKCZwY2ItPnBjYl9tdHgp
OworCiAJCQlpZiAoZXJyb3IgIT0gMCkgewogCQkJCU5HX0ZSRUVfTVNHKG1zZyk7CiAJCQkJcGNi
LT50b2tlbiA9IDA7Ci0JCQkJYnJlYWs7CisJCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4KTsK
KwkJCQlyZXR1cm4gKGVycm9yKTsKIAkJCX0KIAkJfQogCkBAIC05OTMsNyArMTAxNSw4IEBACiAJ
CQlwY2ItPnJ0LT5ob29rLCAwKTsKIAkJaWYgKGVycm9yICE9IDApIHsKIAkJCXBjYi0+dG9rZW4g
PSAwOwotCQkJYnJlYWs7CisJCQltdHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCQkJcmV0dXJu
IChlcnJvcik7CiAJCX0KIAogCQllcnJvciA9IG1zbGVlcCgmcGNiLT5tc2csICZwY2ItPnBjYl9t
dHgsIFBaRVJPfFBDQVRDSCwgImwyY3RsIiwKQEAgLTEwMDAsMTMgKzEwMjMsMjAgQEAKIAkJCQli
bHVldG9vdGhfbDJjYXBfcnR4X3RpbWVvdXQoKSk7CiAJCXBjYi0+dG9rZW4gPSAwOwogCi0JCWlm
IChlcnJvciAhPSAwKQotCQkJYnJlYWs7CisJCWlmIChlcnJvciAhPSAwKSB7CisJCQltdHhfdW5s
b2NrKCZwY2ItPnBjYl9tdHgpOworCQkJcmV0dXJuIChlcnJvcik7CisJCX0KIAotCQlpZiAocGNi
LT5tc2cgIT0gTlVMTCAmJgotCQkgICAgcGNiLT5tc2ctPmhlYWRlci5jbWQgPT0gTkdNX0wyQ0FQ
X0wyQ0FfUElORykgeworCQltc2cgPSBwY2ItPm1zZzsKKwkJcGNiLT5tc2cgPSBOVUxMOworCisJ
CW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisKKwkJaWYgKG1zZyAhPSBOVUxMICYmCisJCSAg
ICBtc2ctPmhlYWRlci5jbWQgPT0gTkdNX0wyQ0FQX0wyQ0FfUElORykgewogCQkJLyogUmV0dXJu
IGRhdGEgYmFjayB0byB0aGUgdXNlciBzcGFjZSAqLwotCQkJb3AgPSAobmdfbDJjYXBfbDJjYV9w
aW5nX29wICopKHBjYi0+bXNnLT5kYXRhKTsKKwkJCW9wID0gKG5nX2wyY2FwX2wyY2FfcGluZ19v
cCAqKShtc2ctPmRhdGEpOwogCQkJcC0+cmVzdWx0ID0gb3AtPnJlc3VsdDsKIAkJCXAtPmVjaG9f
c2l6ZSA9IG1pbihwLT5lY2hvX3NpemUsIG9wLT5lY2hvX3NpemUpOwogCkBAIC0xMDE2LDggKzEw
NDYsOSBAQAogCQl9IGVsc2UKIAkJCWVycm9yID0gRUlOVkFMOwogCi0JCU5HX0ZSRUVfTVNHKHBj
Yi0+bXNnKTsgLyogY2hlY2tzIGZvciAhPSBOVUxMICovCi0JCX0gYnJlYWs7CisJCU5HX0ZSRUVf
TVNHKG1zZyk7IC8qIGNoZWNrcyBmb3IgIT0gTlVMTCAqLworCQlyZXR1cm4gKGVycm9yKTsKKwkJ
fSAvKiBOT1RSRUFDSEVEICovCiAKIAljYXNlIFNJT0NfTDJDQVBfTDJDQV9HRVRfSU5GTzogewog
CQlzdHJ1Y3QgbmdfYnRzb2NrZXRfbDJjYXBfcmF3X2dldF9pbmZvCSpwID0gCkBAIC0xMDI2LDEz
ICsxMDU3LDEzIEBACiAJCW5nX2wyY2FwX2wyY2FfZ2V0X2luZm9fb3AJCSpvcCA9IE5VTEw7CiAK
IAkJaWYgKCEocGNiLT5mbGFncyAmIE5HX0JUU09DS0VUX0wyQ0FQX1JBV19QUklWSUxFR0VEKSkg
ewotCQkJZXJyb3IgPSBFUEVSTTsKLQkJCWJyZWFrOworCQkJbXR4X3VubG9jaygmcGNiLT5wY2Jf
bXR4KTsKKwkJCXJldHVybiAoRVBFUk0pOwogCQl9CiAKIAkJaWYgKHAtPmluZm9fc2l6ZSAhPSAw
ICYmIHAtPmluZm9fZGF0YSA9PSBOVUxMKSB7Ci0JCQllcnJvciA9IEVJTlZBTDsKLQkJCWJyZWFr
OworCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoRUlOVkFMKTsKIAkJ
fQogCiAJCU5HX01LTUVTU0FHRShtc2csIE5HTV9MMkNBUF9DT09LSUUsCkBAIC0xMDM5LDggKzEw
NzAsOCBAQAogCQkJTkdNX0wyQ0FQX0wyQ0FfR0VUX0lORk8sIHNpemVvZigqaXApICsgcC0+aW5m
b19zaXplLAogCQkJTV9OT1dBSVQpOwogCQlpZiAobXNnID09IE5VTEwpIHsKLQkJCWVycm9yID0g
RU5PTUVNOwotCQkJYnJlYWs7CisJCQltdHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCQkJcmV0
dXJuIChFTk9NRU0pOwogCQl9CiAJCW5nX2J0c29ja2V0X2wyY2FwX3Jhd19nZXRfdG9rZW4oJm1z
Zy0+aGVhZGVyLnRva2VuKTsKIAkJcGNiLT50b2tlbiA9IG1zZy0+aGVhZGVyLnRva2VuOwpAQCAt
MTA1NCw3ICsxMDg1LDggQEAKIAkJCXBjYi0+cnQtPmhvb2ssIDApOwogCQlpZiAoZXJyb3IgIT0g
MCkgewogCQkJcGNiLT50b2tlbiA9IDA7Ci0JCQlicmVhazsKKwkJCW10eF91bmxvY2soJnBjYi0+
cGNiX210eCk7CisJCQlyZXR1cm4gKGVycm9yKTsKIAkJfQogCiAJCWVycm9yID0gbXNsZWVwKCZw
Y2ItPm1zZywgJnBjYi0+cGNiX210eCwgUFpFUk98UENBVENILCAibDJjdGwiLApAQCAtMTA2MSwx
MyArMTA5MywyMCBAQAogCQkJCWJsdWV0b290aF9sMmNhcF9ydHhfdGltZW91dCgpKTsKIAkJcGNi
LT50b2tlbiA9IDA7CiAKLQkJaWYgKGVycm9yICE9IDApCi0JCQlicmVhazsKKwkJaWYgKGVycm9y
ICE9IDApIHsKKwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4gKGVycm9y
KTsKKwkJfQogCi0JCWlmIChwY2ItPm1zZyAhPSBOVUxMICYmCi0JCSAgICBwY2ItPm1zZy0+aGVh
ZGVyLmNtZCA9PSBOR01fTDJDQVBfTDJDQV9HRVRfSU5GTykgeworCQltc2cgPSBwY2ItPm1zZzsK
KwkJcGNiLT5tc2cgPSBOVUxMOworCisJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisKKwkJ
aWYgKG1zZyAhPSBOVUxMICYmCisJCSAgICBtc2ctPmhlYWRlci5jbWQgPT0gTkdNX0wyQ0FQX0wy
Q0FfR0VUX0lORk8pIHsKIAkJCS8qIFJldHVybiBkYXRhIGJhY2sgdG8gdGhlIHVzZXIgc3BhY2Ug
Ki8KLQkJCW9wID0gKG5nX2wyY2FwX2wyY2FfZ2V0X2luZm9fb3AgKikocGNiLT5tc2ctPmRhdGEp
OworCQkJb3AgPSAobmdfbDJjYXBfbDJjYV9nZXRfaW5mb19vcCAqKShtc2ctPmRhdGEpOwogCQkJ
cC0+cmVzdWx0ID0gb3AtPnJlc3VsdDsKIAkJCXAtPmluZm9fc2l6ZSA9IG1pbihwLT5pbmZvX3Np
emUsIG9wLT5pbmZvX3NpemUpOwogCkBAIC0xMDc3LDggKzExMTYsOSBAQAogCQl9IGVsc2UKIAkJ
CWVycm9yID0gRUlOVkFMOwogCi0JCU5HX0ZSRUVfTVNHKHBjYi0+bXNnKTsgLyogY2hlY2tzIGZv
ciAhPSBOVUxMICovCi0JCX0gYnJlYWs7CisJCU5HX0ZSRUVfTVNHKG1zZyk7IC8qIGNoZWNrcyBm
b3IgIT0gTlVMTCAqLworCQlyZXR1cm4gKGVycm9yKTsKKwkJfSAvKiBOT1RSRUFDSEVEICovCiAK
IAljYXNlIFNJT0NfTDJDQVBfTk9ERV9HRVRfQVVUT19ESVNDT05fVElNTzogewogCQlzdHJ1Y3Qg
bmdfYnRzb2NrZXRfbDJjYXBfcmF3X2F1dG9fZGlzY29uX3RpbW8JKnAgPQo=
--000000000000b5f150059147bbf7--



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