Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Aug 2019 10:10:35 -0700
From:      Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
To:        "mms.vanbreukelingen@gmail.com" <mms.vanbreukelingen@gmail.com>
Cc:        "kostikbel@gmail.com" <kostikbel@gmail.com>, Warner Losh <imp@bsdimp.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:  <CAFPOs6oUiFrgdFFS2EWPVzFkGfZsntk3JYPDE_2VgLoW7B4BuA@mail.gmail.com>
In-Reply-To: <CAFPOs6o6yHkC4xXnYBTD4QvUJryb=_bBKeJA5YKWG-No6kdtVQ@mail.gmail.com>
References:  <47509401.1440476.1566796167857.ref@mail.yahoo.com> <47509401.1440476.1566796167857@mail.yahoo.com> <5aa8faeb-5e8e-38be-4301-81f3d82c494a@selasky.org> <CANCZdfpJARVFz%2BCyvbAK9sH4E6__DPAunYQz5rxexO-mzuvsuw@mail.gmail.com> <00E772F0-7231-44C4-B314-26730CC7DF21@gmail.com> <20190827071052.GT71821@kib.kiev.ua> <233039408.1857163.1566892977201@mail.yahoo.com> <CAFPOs6o6yHkC4xXnYBTD4QvUJryb=_bBKeJA5YKWG-No6kdtVQ@mail.gmail.com>

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

> > > Hmm... interesting....
> > >
> > > I only took a brief look at it. I suppose I can ensure user space address is wired and then copyout() can be called with mutex held
> >
> > >No, you cannot do this, at least without making the kernel to panic.
> > User might unmap the wired mapping at any time still.
>
> Kostik,
>
> i was thinking along the lines of vslock/vsunlock and copyout_nofault.
> basically similar to the sysctl code. do you think this would not
> work?

actually, i dont think i need to hold lock over copyout. attached is
my version of the patch (untested)

thanks,
max

--0000000000004eb85005913078ec
Content-Type: text/plain; charset="US-ASCII"; name="ng_btsocket_hci_raw.c.diff.txt"
Content-Disposition: attachment; filename="ng_btsocket_hci_raw.c.diff.txt"
Content-Transfer-Encoding: base64
Content-ID: <f_jzvimh7e0>
X-Attachment-Id: f_jzvimh7e0

SW5kZXg6IG5nX2J0c29ja2V0X2hjaV9yYXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9oZWFk
L3N5cy9uZXRncmFwaC9ibHVldG9vdGgvc29ja2V0L25nX2J0c29ja2V0X2hjaV9yYXcuYyBiL2hl
YWQvc3lzL25ldGdyYXBoL2JsdWV0b290aC9zb2NrZXQvbmdfYnRzb2NrZXRfaGNpX3Jhdy5jCi0t
LSBhL2hlYWQvc3lzL25ldGdyYXBoL2JsdWV0b290aC9zb2NrZXQvbmdfYnRzb2NrZXRfaGNpX3Jh
dy5jCShyZXZpc2lvbiAzNTE1NjgpCisrKyBiL2hlYWQvc3lzL25ldGdyYXBoL2JsdWV0b290aC9z
b2NrZXQvbmdfYnRzb2NrZXRfaGNpX3Jhdy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMTU2LDE1ICsx
MTU2LDE1IEBACiAJCWlmIChwLT5udW1fZW50cmllcyA8PSAwIHx8IAogCQkgICAgcC0+bnVtX2Vu
dHJpZXMgPiBOR19IQ0lfTUFYX05FSUdIQk9SX05VTSB8fAogCQkgICAgcC0+ZW50cmllcyA9PSBO
VUxMKSB7Ci0JCQllcnJvciA9IEVJTlZBTDsKLQkJCWJyZWFrOworCQkJbXR4X3VubG9jaygmcGNi
LT5wY2JfbXR4KTsKKwkJCXJldHVybiAoRUlOVkFMKTsKIAkJfQogCiAJCU5HX01LTUVTU0FHRSht
c2csIE5HTV9IQ0lfQ09PS0lFLAogCQkJTkdNX0hDSV9OT0RFX0dFVF9ORUlHSEJPUl9DQUNIRSwg
MCwgTV9OT1dBSVQpOwogCQlpZiAobXNnID09IE5VTEwpIHsKLQkJCWVycm9yID0gRU5PTUVNOwot
CQkJYnJlYWs7CisJCQltdHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCQkJcmV0dXJuIChFTk9N
RU0pOwogCQl9CiAJCW5nX2J0c29ja2V0X2hjaV9yYXdfZ2V0X3Rva2VuKCZtc2ctPmhlYWRlci50
b2tlbik7CiAJCXBjYi0+dG9rZW4gPSBtc2ctPmhlYWRlci50b2tlbjsKQEAgLTExNzMsNyArMTE3
Myw4IEBACiAJCU5HX1NFTkRfTVNHX1BBVEgoZXJyb3IsIG5nX2J0c29ja2V0X2hjaV9yYXdfbm9k
ZSwgbXNnLCBwYXRoLCAwKTsKIAkJaWYgKGVycm9yICE9IDApIHsKIAkJCXBjYi0+dG9rZW4gPSAw
OwotCQkJYnJlYWs7CisJCQltdHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCQkJcmV0dXJuIChl
cnJvcik7CiAJCX0KIAogCQllcnJvciA9IG1zbGVlcCgmcGNiLT5tc2csICZwY2ItPnBjYl9tdHgs
CkBAIC0xMTgxLDE2ICsxMTgyLDIxIEBACiAJCQkJbmdfYnRzb2NrZXRfaGNpX3Jhd19pb2N0bF90
aW1lb3V0ICogaHopOwogCQlwY2ItPnRva2VuID0gMDsKIAotCQlpZiAoZXJyb3IgIT0gMCkKLQkJ
CWJyZWFrOworCQlpZiAoZXJyb3IgIT0gMCkgeworCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4
KTsKKwkJCXJldHVybiAoZXJyb3IpOworCQl9CiAKLQkJaWYgKHBjYi0+bXNnICE9IE5VTEwgJiYK
LQkJICAgIHBjYi0+bXNnLT5oZWFkZXIuY21kID09IE5HTV9IQ0lfTk9ERV9HRVRfTkVJR0hCT1Jf
Q0FDSEUpIHsKKwkJbXNnID0gcGNiLT5tc2c7CisJCXBjYi0+bXNnID0gTlVMTDsKKworCQltdHhf
dW5sb2NrKCZwY2ItPnBjYl9tdHgpOworCQkKKwkJaWYgKG1zZyAhPSBOVUxMICYmCisJCSAgICBt
c2ctPmhlYWRlci5jbWQgPT0gTkdNX0hDSV9OT0RFX0dFVF9ORUlHSEJPUl9DQUNIRSkgewogCQkJ
LyogUmV0dXJuIGRhdGEgYmFjayB0byB1c2VyIHNwYWNlICovCi0JCQlwMSA9IChuZ19oY2lfbm9k
ZV9nZXRfbmVpZ2hib3JfY2FjaGVfZXAgKikKLQkJCQkocGNiLT5tc2ctPmRhdGEpOwotCQkJcDIg
PSAobmdfaGNpX25vZGVfbmVpZ2hib3JfY2FjaGVfZW50cnlfZXAgKikKLQkJCQkocDEgKyAxKTsK
KwkJCXAxID0gKG5nX2hjaV9ub2RlX2dldF9uZWlnaGJvcl9jYWNoZV9lcCAqKShtc2ctPmRhdGEp
OworCQkJcDIgPSAobmdfaGNpX25vZGVfbmVpZ2hib3JfY2FjaGVfZW50cnlfZXAgKikocDEgKyAx
KTsKIAogCQkJcC0+bnVtX2VudHJpZXMgPSBtaW4ocC0+bnVtX2VudHJpZXMsIHAxLT5udW1fZW50
cmllcyk7CiAJCQlpZiAocC0+bnVtX2VudHJpZXMgPiAwKQpAQCAtMTIwMCw4ICsxMjA2LDkgQEAK
IAkJfSBlbHNlCiAJCQllcnJvciA9IEVJTlZBTDsKIAotCQlOR19GUkVFX01TRyhwY2ItPm1zZyk7
IC8qIGNoZWNrcyBmb3IgIT0gTlVMTCAqLwotCQl9YnJlYWs7CisJCU5HX0ZSRUVfTVNHKG1zZyk7
IC8qIGNoZWNrcyBmb3IgIT0gTlVMTCAqLworCQlyZXR1cm4gKGVycm9yKTsKKwkJfSAvKiBOT1RS
RUFDSEVEICovCiAKIAljYXNlIFNJT0NfSENJX1JBV19OT0RFX0dFVF9DT05fTElTVDogewogCQlz
dHJ1Y3QgbmdfYnRzb2NrZXRfaGNpX3Jhd19jb25fbGlzdAkqcCA9IApAQCAtMTIxMiwxNSArMTIx
OSwxNSBAQAogCQlpZiAocC0+bnVtX2Nvbm5lY3Rpb25zID09IDAgfHwKIAkJICAgIHAtPm51bV9j
b25uZWN0aW9ucyA+IE5HX0hDSV9NQVhfQ09OX05VTSB8fAogCQkgICAgcC0+Y29ubmVjdGlvbnMg
PT0gTlVMTCkgewotCQkJZXJyb3IgPSBFSU5WQUw7Ci0JCQlicmVhazsKKwkJCW10eF91bmxvY2so
JnBjYi0+cGNiX210eCk7CisJCQlyZXR1cm4gKEVJTlZBTCk7CiAJCX0KIAogCQlOR19NS01FU1NB
R0UobXNnLCBOR01fSENJX0NPT0tJRSwgTkdNX0hDSV9OT0RFX0dFVF9DT05fTElTVCwKIAkJCTAs
IE1fTk9XQUlUKTsKIAkJaWYgKG1zZyA9PSBOVUxMKSB7Ci0JCQllcnJvciA9IEVOT01FTTsKLQkJ
CWJyZWFrOworCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoRU5PTUVN
KTsKIAkJfQogCQluZ19idHNvY2tldF9oY2lfcmF3X2dldF90b2tlbigmbXNnLT5oZWFkZXIudG9r
ZW4pOwogCQlwY2ItPnRva2VuID0gbXNnLT5oZWFkZXIudG9rZW47CkBAIC0xMjI5LDcgKzEyMzYs
OCBAQAogCQlOR19TRU5EX01TR19QQVRIKGVycm9yLCBuZ19idHNvY2tldF9oY2lfcmF3X25vZGUs
IG1zZywgcGF0aCwgMCk7CiAJCWlmIChlcnJvciAhPSAwKSB7CiAJCQlwY2ItPnRva2VuID0gMDsK
LQkJCWJyZWFrOworCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoZXJy
b3IpOwogCQl9CiAKIAkJZXJyb3IgPSBtc2xlZXAoJnBjYi0+bXNnLCAmcGNiLT5wY2JfbXR4LApA
QCAtMTIzNywxMyArMTI0NSwyMCBAQAogCQkJCW5nX2J0c29ja2V0X2hjaV9yYXdfaW9jdGxfdGlt
ZW91dCAqIGh6KTsKIAkJcGNiLT50b2tlbiA9IDA7CiAKLQkJaWYgKGVycm9yICE9IDApCi0JCQli
cmVhazsKKwkJaWYgKGVycm9yICE9IDApIHsKKwkJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7
CisJCQlyZXR1cm4gKGVycm9yKTsKKwkJfQogCi0JCWlmIChwY2ItPm1zZyAhPSBOVUxMICYmCi0J
CSAgICBwY2ItPm1zZy0+aGVhZGVyLmNtZCA9PSBOR01fSENJX05PREVfR0VUX0NPTl9MSVNUKSB7
CisJCW1zZyA9IHBjYi0+bXNnOworCQlwY2ItPm1zZyA9IE5VTEw7CisKKwkJbXR4X3VubG9jaygm
cGNiLT5wY2JfbXR4KTsKKworCQlpZiAobXNnICE9IE5VTEwgJiYKKwkJICAgIG1zZy0+aGVhZGVy
LmNtZCA9PSBOR01fSENJX05PREVfR0VUX0NPTl9MSVNUKSB7CiAJCQkvKiBSZXR1cm4gZGF0YSBi
YWNrIHRvIHVzZXIgc3BhY2UgKi8KLQkJCXAxID0gKG5nX2hjaV9ub2RlX2Nvbl9saXN0X2VwICop
KHBjYi0+bXNnLT5kYXRhKTsKKwkJCXAxID0gKG5nX2hjaV9ub2RlX2Nvbl9saXN0X2VwICopKG1z
Zy0+ZGF0YSk7CiAJCQlwMiA9IChuZ19oY2lfbm9kZV9jb25fZXAgKikocDEgKyAxKTsKIAogCQkJ
cC0+bnVtX2Nvbm5lY3Rpb25zID0gbWluKHAtPm51bV9jb25uZWN0aW9ucywKQEAgLTEyNTUsOCAr
MTI3MCw5IEBACiAJCX0gZWxzZQogCQkJZXJyb3IgPSBFSU5WQUw7CiAKLQkJTkdfRlJFRV9NU0co
cGNiLT5tc2cpOyAvKiBjaGVja3MgZm9yICE9IE5VTEwgKi8KLQkJfSBicmVhazsKKwkJTkdfRlJF
RV9NU0cobXNnKTsgLyogY2hlY2tzIGZvciAhPSBOVUxMICovCisJCXJldHVybiAoZXJyb3IpOwor
CQl9IC8qIE5PVFJFQUNIRUQgKi8KIAogCWNhc2UgU0lPQ19IQ0lfUkFXX05PREVfR0VUX0xJTktf
UE9MSUNZX01BU0s6IHsKIAkJc3RydWN0IG5nX2J0c29ja2V0X2hjaV9yYXdfbm9kZV9saW5rX3Bv
bGljeV9tYXNrCSpwID0gCkBAIC0xMzMyLDE1ICsxMzQ4LDE1IEBACiAJCXN0cnVjdCBub2RlaW5m
bwkJCQkJKm5pID0gbmwtPm5hbWVzOwogCiAJCWlmIChubC0+bnVtX25hbWVzID09IDApIHsKLQkJ
CWVycm9yID0gRUlOVkFMOwotCQkJYnJlYWs7CisJCQltdHhfdW5sb2NrKCZwY2ItPnBjYl9tdHgp
OworCQkJcmV0dXJuIChFSU5WQUwpOwogCQl9CiAKIAkJTkdfTUtNRVNTQUdFKG1zZywgTkdNX0dF
TkVSSUNfQ09PS0lFLCBOR01fTElTVE5BTUVTLAogCQkJMCwgTV9OT1dBSVQpOwogCQlpZiAobXNn
ID09IE5VTEwpIHsKLQkJCWVycm9yID0gRU5PTUVNOwotCQkJYnJlYWs7CisJCQltdHhfdW5sb2Nr
KCZwY2ItPnBjYl9tdHgpOworCQkJcmV0dXJuIChFTk9NRU0pOwogCQl9CiAJCW5nX2J0c29ja2V0
X2hjaV9yYXdfZ2V0X3Rva2VuKCZtc2ctPmhlYWRlci50b2tlbik7CiAJCXBjYi0+dG9rZW4gPSBt
c2ctPmhlYWRlci50b2tlbjsKQEAgLTEzNDksNyArMTM2NSw4IEBACiAJCU5HX1NFTkRfTVNHX1BB
VEgoZXJyb3IsIG5nX2J0c29ja2V0X2hjaV9yYXdfbm9kZSwgbXNnLCAiLjoiLCAwKTsKIAkJaWYg
KGVycm9yICE9IDApIHsKIAkJCXBjYi0+dG9rZW4gPSAwOwotCQkJYnJlYWs7CisJCQltdHhfdW5s
b2NrKCZwY2ItPnBjYl9tdHgpOworCQkJcmV0dXJuIChlcnJvcik7CiAJCX0KIAogCQllcnJvciA9
IG1zbGVlcCgmcGNiLT5tc2csICZwY2ItPnBjYl9tdHgsCkBAIC0xMzU3LDEyICsxMzc0LDE5IEBA
CiAJCQkJbmdfYnRzb2NrZXRfaGNpX3Jhd19pb2N0bF90aW1lb3V0ICogaHopOwogCQlwY2ItPnRv
a2VuID0gMDsKIAotCQlpZiAoZXJyb3IgIT0gMCkKLQkJCWJyZWFrOworCQlpZiAoZXJyb3IgIT0g
MCkgeworCQkJbXR4X3VubG9jaygmcGNiLT5wY2JfbXR4KTsKKwkJCXJldHVybiAoZXJyb3IpOwor
CQl9CiAKLQkJaWYgKHBjYi0+bXNnICE9IE5VTEwgJiYgcGNiLT5tc2ctPmhlYWRlci5jbWQgPT0g
TkdNX0xJU1ROQU1FUykgeworCQltc2cgPSBwY2ItPm1zZzsKKwkJcGNiLT5tc2cgPSBOVUxMOwor
CisJCW10eF91bmxvY2soJnBjYi0+cGNiX210eCk7CisKKwkJaWYgKG1zZyAhPSBOVUxMICYmIG1z
Zy0+aGVhZGVyLmNtZCA9PSBOR01fTElTVE5BTUVTKSB7CiAJCQkvKiBSZXR1cm4gZGF0YSBiYWNr
IHRvIHVzZXIgc3BhY2UgKi8KLQkJCXN0cnVjdCBuYW1lbGlzdAkqbmwxID0gKHN0cnVjdCBuYW1l
bGlzdCAqKSBwY2ItPm1zZy0+ZGF0YTsKKwkJCXN0cnVjdCBuYW1lbGlzdAkqbmwxID0gKHN0cnVj
dCBuYW1lbGlzdCAqKSBtc2ctPmRhdGE7CiAJCQlzdHJ1Y3Qgbm9kZWluZm8JKm5pMSA9ICZubDEt
Pm5vZGVpbmZvWzBdOwogCiAJCQl3aGlsZSAobmwtPm51bV9uYW1lcyA+IDAgJiYgbmwxLT5udW1u
YW1lcyA+IDApIHsKQEAgLTEzODUsOCArMTQwOSw5IEBACiAJCX0gZWxzZQogCQkJZXJyb3IgPSBF
SU5WQUw7CiAKLQkJTkdfRlJFRV9NU0cocGNiLT5tc2cpOyAvKiBjaGVja3MgZm9yICE9IE5VTEwg
Ki8KLQkJfSBicmVhazsKKwkJTkdfRlJFRV9NU0cobXNnKTsgLyogY2hlY2tzIGZvciAhPSBOVUxM
ICovCisJCXJldHVybiAoZXJyb3IpOworCQl9IC8qIE5PVFJFQUNIRUQgKi8KIAogCWRlZmF1bHQ6
CiAJCWVycm9yID0gRUlOVkFMOwo=
--0000000000004eb85005913078ec--



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