From owner-freebsd-current@freebsd.org Wed Aug 28 17:10:48 2019 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AD60DE1D86 for ; Wed, 28 Aug 2019 17:10:48 +0000 (UTC) (envelope-from maksim.yevmenkin@gmail.com) Received: from mail-qk1-x743.google.com (mail-qk1-x743.google.com [IPv6:2607:f8b0:4864:20::743]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46JXLv4gRfz4Rxd for ; Wed, 28 Aug 2019 17:10:47 +0000 (UTC) (envelope-from maksim.yevmenkin@gmail.com) Received: by mail-qk1-x743.google.com with SMTP id d23so423178qko.3 for ; Wed, 28 Aug 2019 10:10:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0Jcig/0W/kvOlCA4LcZH0OlyLwTXEqvmLlFwCXN6cAw=; b=KMFE100JA+q3AnWA+pdw9tVluYf5RfSdn/AQtpALN8quToPeyrgxZFX/73W0/jIpze Q4xKFjiWYERWpoYiV3BSSubGy1McqewQV/8ZfnpHChM/+wNMMTmWJ0W+SVdzUu1A10WQ J2kYhsNcrlk8DTyoyTVQJ2dCp5Hw8Qu5oYFf0ymSEuphFFleAygpPVd0w3t1lMOIVLBH zC49vjPdsVtMMJvSD7TB52hO3a5HvTlhuiApq0IDd+5tsACkry2j2WvKYWoBJPY3VQ4g wgzvvR3YYUUoSs2U7isnoxOyyNg5n31sny7qAxZHc5WUC/Bx5x1siF2f3aBDGHqPLTWx bRrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0Jcig/0W/kvOlCA4LcZH0OlyLwTXEqvmLlFwCXN6cAw=; b=JW0mr6vRhA1k8u7ZcQFLWVTnaw8zppvq9KKMM6cvgTMqLJaQrMlCY/DOEtc03+bUcA u2VwLZc7XZue8PRyfa9T5Y2dugoyxyfxAjXbujcx/akUspu/7NiCcTeMqAbSZNwqBKUx 5i71cJpWZoktwcQqHDd9yVUwzMPlbbKMRFL2b28GkrBqoalYJUo+e6F8zEQlxU8eDVEw wWjzwDlAc22UZoBhDdWehbHJUwTFxG1JXbNNOpvWICOeXT+N/+mLNWyhdKNuCOgf0Iib hDjsCX8oo9s1FVSahEMaEW3bpLUyB9G33xjg5R42PEd+g+DulXfmnjE36cVlCsbII+CN 7D+w== X-Gm-Message-State: APjAAAWHqvtapUV5/nZK4tu4MoAr7NSqTQJc2WIQ9sO3IUlBcxwhdJOs tMUKoUdlv0vWMuc1k5wQJeDbl/dX5QqK5fO2cIw= X-Google-Smtp-Source: APXvYqxUjLDW5OctR1FQEKlMQuTlx6vzZj1dNdYhGbyC4ZMUx7cIsCvjQVHySqGlkHWChKzdyTSN5jt1At7Hf9OOSRw= X-Received: by 2002:a37:6c8:: with SMTP id 191mr5207043qkg.102.1567012246423; Wed, 28 Aug 2019 10:10:46 -0700 (PDT) MIME-Version: 1.0 References: <47509401.1440476.1566796167857.ref@mail.yahoo.com> <47509401.1440476.1566796167857@mail.yahoo.com> <5aa8faeb-5e8e-38be-4301-81f3d82c494a@selasky.org> <00E772F0-7231-44C4-B314-26730CC7DF21@gmail.com> <20190827071052.GT71821@kib.kiev.ua> <233039408.1857163.1566892977201@mail.yahoo.com> In-Reply-To: From: Maksim Yevmenkin Date: Wed, 28 Aug 2019 10:10:35 -0700 Message-ID: Subject: Re: Kernel-Crash when working with ubt0 To: "mms.vanbreukelingen@gmail.com" Cc: "kostikbel@gmail.com" , Warner Losh , Hans Petter Selasky , "freebsd-current@freebsd.org" Content-Type: multipart/mixed; boundary="0000000000004eb85005913078ec" X-Rspamd-Queue-Id: 46JXLv4gRfz4Rxd X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=KMFE100J; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of maksimyevmenkin@gmail.com designates 2607:f8b0:4864:20::743 as permitted sender) smtp.mailfrom=maksimyevmenkin@gmail.com X-Spamd-Result: default: False [-2.89 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; HAS_ATTACHMENT(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; DKIM_TRACE(0.00)[gmail.com:+]; CTYPE_MIXED_BOGUS(1.00)[]; MIME_BASE64_TEXT(0.10)[]; NEURAL_HAM_SHORT(-0.99)[-0.992,0]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TAGGED_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[3.4.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; IP_SCORE(0.00)[ip: (2.87), ipnet: 2607:f8b0::/32(-2.85), asn: 15169(-2.32), country: US(-0.05)]; RCVD_COUNT_TWO(0.00)[2]; FREEMAIL_CC(0.00)[gmail.com]; RCVD_TLS_ALL(0.00)[] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Aug 2019 17:10:48 -0000 --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: 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--