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>