From owner-svn-src-head@freebsd.org Tue Aug 1 04:20:33 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA040DC9869 for ; Tue, 1 Aug 2017 04:20:33 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x232.google.com (mail-it0-x232.google.com [IPv6:2607:f8b0:4001:c0b::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7BB96773A3 for ; Tue, 1 Aug 2017 04:20:33 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x232.google.com with SMTP id h199so1917060ith.0 for ; Mon, 31 Jul 2017 21:20:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=date:subject:message-id:from:to:mime-version; bh=FNVfozCdDnuoeO8usbX0jFwC/YoiWnVuUVt9RFNDAHo=; b=YTWBI5f+2634a6I2HD9oMQvdG0hSMt5ZrYKWzrzwPURm5ZhacEQgi4XmqpXBebOA7/ OsI6aSmNhyIxCnvOqGGC07FCmtXc/Wt5TeHIIRL9j5rx4sDT7jdQXd1fk7DqShKYj8tK YQlpGNKFhMf68ZeNCSk/wp6nogQeqKhtBYXVEp9nJDdZtdggDdxp0Fvtf7k+MZwlCakM epjecklm8+99bAxpPPqvbWWC5F2PiCikfoSPcX829h3gE1pMcZOa0lZpPQfnbxwhZHQu juzECIWmRwPSYGGYmCs6f8IYg83yfLgKWN1v1GnbEswNPKlHmTmbC+98iseyNtam1Dwu Vmfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:subject:message-id:from:to:mime-version; bh=FNVfozCdDnuoeO8usbX0jFwC/YoiWnVuUVt9RFNDAHo=; b=YBEL9uOpDTvc3v3GJp6WHWHjuMSjLTIj/NriCcEzRuzYv+hdtVEPqW78H3ngZBVNXl N7VslTucX9g9RkoKvyYdbgTC0hhp7gAI9zQma4LNY3LIuB7oEGmX8OVry8BTSLtfxbp0 3zPVCJCLmP6aSt4zA/4bbK0X7391nnQG/5whRvoh6csmrVl074qA4Nyb98EppYJcJHl4 bYKgAGF83r6vQSmC1V1z2uryhG/gi6O9LG5Sfi0ulF5DFySlDFAUcu/vISaj0kPyo1Io kwV4wJ7Z2X5ZGtcdeWoDAcci7I5VLipUx9EtacRAJc+A5u67sWZ/lcr+F5JcbUnKqcRi 73QQ== X-Gm-Message-State: AIVw111tjC58i6PQxsihMVk1KZ2Eza45MrtJjgWIDhyyNYNzbdlX/z1f W/pt4HflfDlYvMG6we1V4w== X-Received: by 10.36.121.207 with SMTP id z198mr415849itc.83.1501561232376; Mon, 31 Jul 2017 21:20:32 -0700 (PDT) Received: from [10.0.0.93] (50-253-99-174-static.hfc.comcastbusiness.net. [50.253.99.174]) by smtp.gmail.com with ESMTPSA id b14sm242738itb.18.2017.07.31.21.20.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 31 Jul 2017 21:20:31 -0700 (PDT) Date: Mon, 31 Jul 2017 22:20:29 -0600 Subject: Re: svn commit: r321840 - in head/sys: kern sys Message-ID: <5lny7794f8b19a2l8vlaannr.1501561229506@email.android.com> From: Warner Losh To: Alan Cox , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Aug 2017 04:20:33 -0000 CgpPbiBKdWx5IDMxLCAyMDE3LCBhdCA5OjUxIFBNLCBBbGFuIENveCA8YWxjQGZyZWVic2Qub3Jn PiB3cm90ZToKCj5BdXRob3I6IGFsYwo+RGF0ZTogVHVlIEF1Z8KgIDEgMDM6NTE6MjYgMjAxNwo+ TmV3IFJldmlzaW9uOiAzMjE4NDAKPlVSTDogaHR0cHM6Ly9zdm53ZWIuZnJlZWJzZC5vcmcvY2hh bmdlc2V0L2Jhc2UvMzIxODQwCj5Mb2c6Cj7CoCBUaGUgYmxpc3RfbWV0YV8qIHJvdXRpbmVzIHRo YXQgcHJvY2VzcyBhIHN1YnRyZWUgdGFrZSBhcmd1bWVudHMgJ3JhZGl4JyBhbmQKPsKgICdza2lw Jywgd2hpY2ggZGVub3RlLCByZXNwZWN0aXZlbHksIHRoZSBsYXJnZXN0IG51bWJlciBvZiBibG9j a3MgdGhhdCBjYW4gYmUKPsKgIG1hbmFnZWQgYnkgYSBzdWJ0cmVlIG9mIHRoYXQgaGVpZ2h0LCBh bmQgb25lIGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIG5vZGVzCj7CoCBpbiBhIHN1YnRyZWUgb2Yg dGhhdCBoZWlnaHQuwqAgVGhpcyBjaGFuZ2UgcmVtb3ZlcyB0aGUgJ3NraXAnIGFyZ3VtZW50IGZy b20KPsKgIHRob3NlIGZ1bmN0aW9ucyBiZWNhdXNlICdza2lwJyBjYW4gYmUgdHJpdmlhbGx5IGNv bXB1dGVkIGZyb20gJ3JhZGl1cycuCj7CoCBUaGlzIGNoYW5nZSBhbHNvIHJlZGVmaW5lcyAnc2tp cCcgc28gdGhhdCBpdCBkZW5vdGVzIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4KPsKgIHRoZSBzdWJ0 cmVlLCBhbmQgc28gY2hhbmdlcyBsb29wIHVwcGVyIGJvdW5kIHRlc3RzIGZyb20gJzw9IHNraXAn IHRvICc8Cj7CoCBza2lwJyB0byBhY2NvdW50IGZvciB0aGUgY2hhbmdlLgo+wqAgCj7CoCBUaGUg J3NraXAnIGZpZWxkIGlzIGFsc28gcmVtb3ZlZCBmcm9tIHRoZSBibGlzdCBzdHJ1Y3QuCj7CoCAK PsKgIFRoZSBzZWxmLXRlc3QgcHJvZ3JhbSBpcyBjaGFuZ2VkIHNvIHRoYXQgdGhlIHByaW50IGNv bW1hbmQgaW5jbHVkZXMgdGhlCj7CoCBjdXJzb3IgdmFsdWUgaW4gdGhlIG91dHB1dC4KPsKgIAo+ wqAgU3VibWl0dGVkIGJ5OiBEb3VnIE1vb3JlIDxkb3VnbUByaWNlLmVkdT4KPsKgIE1GQyBhZnRl cjogMSB3ZWVrCj5Nb2RpZmllZDoKPsKgIGhlYWQvc3lzL2tlcm4vc3Vicl9ibGlzdC5jCj7CoCBo ZWFkL3N5cy9zeXMvYmxpc3QuaAo+TW9kaWZpZWQ6IGhlYWQvc3lzL2tlcm4vc3Vicl9ibGlzdC5j Cj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3N5cy9rZXJuL3N1YnJfYmxpc3QuYyBU dWUgQXVnwqAgMSAwMzo0MDoxOSAyMDE3IChyMzIxODM5KQo+KysrIGhlYWQvc3lzL2tlcm4vc3Vi cl9ibGlzdC5jIFR1ZSBBdWfCoCAxIDAzOjUxOjI2IDIwMTcgKHIzMjE4NDApCj5AQCAtMTIzLDIw ICsxMjMsMTkgQEAgdm9pZCBwYW5pYyhjb25zdCBjaGFyICpjdGwsIC4uLik7Cj5zdGF0aWMgZGFk ZHJfdCBibHN0X2xlYWZfYWxsb2MoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgYmxrLCBpbnQgY291 bnQsCj7CoMKgwqAgZGFkZHJfdCBjdXJzb3IpOwo+c3RhdGljIGRhZGRyX3QgYmxzdF9tZXRhX2Fs bG9jKGJsbWV0YV90ICpzY2FuLCBkYWRkcl90IGJsaywgZGFkZHJfdCBjb3VudCwKPi0gwqDCoMKg IGRhZGRyX3QgcmFkaXgsIGRhZGRyX3Qgc2tpcCwgZGFkZHJfdCBjdXJzb3IpOwo+KyDCoMKgwqAg ZGFkZHJfdCByYWRpeCwgZGFkZHJfdCBjdXJzb3IpOwo+c3RhdGljIHZvaWQgYmxzdF9sZWFmX2Zy ZWUoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgcmVsYmxrLCBpbnQgY291bnQpOwo+c3RhdGljIHZv aWQgYmxzdF9tZXRhX2ZyZWUoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgZnJlZUJsaywgZGFkZHJf dCBjb3VudCwKPi0gwqDCoMKgIGRhZGRyX3QgcmFkaXgsIGRhZGRyX3Qgc2tpcCwgZGFkZHJfdCBi bGspOwo+KyDCoMKgwqAgZGFkZHJfdCByYWRpeCwgZGFkZHJfdCBibGspOwo+c3RhdGljIHZvaWQg YmxzdF9jb3B5KGJsbWV0YV90ICpzY2FuLCBkYWRkcl90IGJsaywgZGFkZHJfdCByYWRpeCwKPi0g wqDCoMKgIGRhZGRyX3Qgc2tpcCwgYmxpc3RfdCBkZXN0LCBkYWRkcl90IGNvdW50KTsKPisgwqDC oMKgIGJsaXN0X3QgZGVzdCwgZGFkZHJfdCBjb3VudCk7Cj5zdGF0aWMgZGFkZHJfdCBibHN0X2xl YWZfZmlsbChibG1ldGFfdCAqc2NhbiwgZGFkZHJfdCBibGssIGludCBjb3VudCk7Cj5zdGF0aWMg ZGFkZHJfdCBibHN0X21ldGFfZmlsbChibG1ldGFfdCAqc2NhbiwgZGFkZHJfdCBhbGxvY0Jsaywg ZGFkZHJfdCBjb3VudCwKPi0gwqDCoMKgIGRhZGRyX3QgcmFkaXgsIGRhZGRyX3Qgc2tpcCwgZGFk ZHJfdCBibGspOwo+LXN0YXRpYyBkYWRkcl90IGJsc3RfcmFkaXhfaW5pdChibG1ldGFfdCAqc2Nh biwgZGFkZHJfdCByYWRpeCwgZGFkZHJfdCBza2lwLAo+LSDCoMKgwqAgZGFkZHJfdCBjb3VudCk7 Cj4rIMKgwqDCoCBkYWRkcl90IHJhZGl4LCBkYWRkcl90IGJsayk7Cj4rc3RhdGljIGRhZGRyX3Qg YmxzdF9yYWRpeF9pbml0KGJsbWV0YV90ICpzY2FuLCBkYWRkcl90IHJhZGl4LCBkYWRkcl90IGNv dW50KTsKPiNpZm5kZWYgX0tFUk5FTAo+c3RhdGljIHZvaWQgYmxzdF9yYWRpeF9wcmludChibG1l dGFfdCAqc2NhbiwgZGFkZHJfdCBibGssIGRhZGRyX3QgcmFkaXgsCj4tIMKgwqDCoCBkYWRkcl90 IHNraXAsIGludCB0YWIpOwo+KyDCoMKgwqAgaW50IHRhYik7Cj4jZW5kaWYKPiNpZmRlZiBfS0VS TkVMCj5AQCAtMTQ0LDYgKzE0MywyOCBAQCBzdGF0aWMgTUFMTE9DX0RFRklORShNX1NXQVAsICJT V0FQIiwgIlN3YXAgc3BhY2UiKTsKPiNlbmRpZgo+LyoKPisgKiBGb3IgYSBzdWJ0cmVlIHRoYXQg Y2FuIHJlcHJlc2VudCB0aGUgc3RhdGUgb2YgdXAgdG8gJ3JhZGl4JyBibG9ja3MsIHRoZQo+KyAq IG51bWJlciBvZiBsZWFmIG5vZGVzIG9mIHRoZSBzdWJ0cmVlIGlzIEw9cmFkaXgvQkxJU1RfQk1B UF9SQURJWC7CoCBJZiAnbScKPisgKiBpcyBzaG9ydCBmb3IgQkxJU1RfTUVUQV9SQURJWCwgdGhl biBmb3IgYSB0cmVlIG9mIGhlaWdodCBoIHdpdGggTD1tKipoCj4rICogbGVhZiBub2RlcywgdGhl IHRvdGFsIG51bWJlciBvZiB0cmVlIG5vZGVzIGlzIDEgKyBtICsgbSoqMiArIC4uLiArIG0qKmgs Cj4rICogb3IsIGVxdWl2YWxlbnRseSwgKG0qKihoKzEpLTEpLyhtLTEpLsKgIFRoaXMgcXVhbnRp dHkgaXMgY2FsbGVkICdza2lwJwo+KyAqIGluIHRoZSAnbWV0YScgZnVuY3Rpb25zIHRoYXQgcHJv Y2VzcyBzdWJ0cmVlcy7CoCBTaW5jZSBpbnRlZ2VyIGRpdmlzaW9uCj4rICogZGlzY2FyZHMgcmVt YWluZGVycywgd2UgY2FuIGV4cHJlc3MgdGhpcyBjb21wdXRhdGlvbiBhcwo+KyAqIHNraXAgPSAo bSAqIG0qKmgpIC8gKG0gLSAxKQo+KyAqIHNraXAgPSAobSAqIHJhZGl4IC8gQkxJU1RfQk1BUF9S QURJWCkgLyAobSAtIDEpCj4rICogYW5kIGlmIG0gZGl2aWRlcyBCTElTVF9CTUFQX1JBRElYLCB3 ZSBjYW4gc2ltcGxpZnkgZnVydGhlciB0bwo+KyAqIHNraXAgPSByYWRpeCAvIChCTElTVF9CTUFQ X1JBRElYIC8gbSAqIChtIC0gMSkpCj4rICogc28gdGhhdCBhIHNpbXBsZSBpbnRlZ2VyIGRpdmlz aW9uIGlzIGVub3VnaCBmb3IgdGhlIGNhbGN1bGF0aW9uLgo+KyAqLwo+K3N0YXRpYyBpbmxpbmUg ZGFkZHJfdAo+K3JhZGl4X3RvX3NraXAoZGFkZHJfdCByYWRpeCkKPit7Cj4rCj4rIHJldHVybiAo cmFkaXggLwo+KyDCoMKgwqAgKEJMSVNUX0JNQVBfUkFESVggLyBCTElTVF9NRVRBX1JBRElYICog KEJMSVNUX01FVEFfUkFESVggLSAxKSkpOwoKSSBkb24ndCB0aGluayB0aGlzIG1hdGNoZXMgdGhl IGNvbW1lbnQuIEl0IGlzIG1pc3NpbmcgcGFyZW5zLCBubz8KCldhcm5lcgo+K30KPisKPisvKgo+ wqAgKiBibGlzdF9jcmVhdGUoKSAtIGNyZWF0ZSBhIGJsaXN0IGNhcGFibGUgb2YgaGFuZGxpbmcg dXAgdG8gdGhlIHNwZWNpZmllZAo+wqAgKiDCoMKgwqAgbnVtYmVyIG9mIGJsb2Nrcwo+wqAgKgo+ QEAgLTE1NywxOCArMTc4LDE2IEBAIGJsaXN0X3QKPmJsaXN0X2NyZWF0ZShkYWRkcl90IGJsb2Nr cywgaW50IGZsYWdzKQo+ewo+Ymxpc3RfdCBibDsKPi0gZGFkZHJfdCBub2RlcywgcmFkaXgsIHNr aXA7Cj4rIGRhZGRyX3Qgbm9kZXMsIHJhZGl4Owo+LyoKPi0gKiBDYWxjdWxhdGUgcmFkaXggYW5k IHNraXAgZmllbGQgdXNlZCBmb3Igc2Nhbm5pbmcuCj4rICogQ2FsY3VsYXRlIHRoZSByYWRpeCBm aWVsZCB1c2VkIGZvciBzY2FubmluZy4KPiovCj5yYWRpeCA9IEJMSVNUX0JNQVBfUkFESVg7Cj4t IHNraXAgPSAwOwo+d2hpbGUgKHJhZGl4IDwgYmxvY2tzKSB7Cj5yYWRpeCAqPSBCTElTVF9NRVRB X1JBRElYOwo+LSBza2lwID0gKHNraXAgKyAxKSAqIEJMSVNUX01FVEFfUkFESVg7Cj59Cj4tIG5v ZGVzID0gMSArIGJsc3RfcmFkaXhfaW5pdChOVUxMLCByYWRpeCwgc2tpcCwgYmxvY2tzKTsKPisg bm9kZXMgPSAxICsgYmxzdF9yYWRpeF9pbml0KE5VTEwsIHJhZGl4LCBibG9ja3MpOwo+YmwgPSBt YWxsb2Moc2l6ZW9mKHN0cnVjdCBibGlzdCksIE1fU1dBUCwgZmxhZ3MpOwo+aWYgKGJsID09IE5V TEwpCj5AQCAtMTc2LDE0ICsxOTUsMTMgQEAgYmxpc3RfY3JlYXRlKGRhZGRyX3QgYmxvY2tzLCBp bnQgZmxhZ3MpCj5ibC0+YmxfYmxvY2tzID0gYmxvY2tzOwo+YmwtPmJsX3JhZGl4ID0gcmFkaXg7 Cj4tIGJsLT5ibF9za2lwID0gc2tpcDsKPmJsLT5ibF9jdXJzb3IgPSAwOwo+YmwtPmJsX3Jvb3Qg PSBtYWxsb2Mobm9kZXMgKiBzaXplb2YoYmxtZXRhX3QpLCBNX1NXQVAsIGZsYWdzKTsKPmlmIChi bC0+Ymxfcm9vdCA9PSBOVUxMKSB7Cj5mcmVlKGJsLCBNX1NXQVApOwo+cmV0dXJuIChOVUxMKTsK Pn0KPi0gYmxzdF9yYWRpeF9pbml0KGJsLT5ibF9yb290LCByYWRpeCwgc2tpcCwgYmxvY2tzKTsK PisgYmxzdF9yYWRpeF9pbml0KGJsLT5ibF9yb290LCByYWRpeCwgYmxvY2tzKTsKPiNpZiBkZWZp bmVkKEJMSVNUX0RFQlVHKQo+cHJpbnRmKAo+QEAgLTIyNSw3ICsyNDMsNyBAQCBibGlzdF9hbGxv YyhibGlzdF90IGJsLCBkYWRkcl90IGNvdW50KQo+Ki8KPndoaWxlIChjb3VudCA8PSBibC0+Ymxf cm9vdC0+Ym1fYmlnaGludCkgewo+YmxrID0gYmxzdF9tZXRhX2FsbG9jKGJsLT5ibF9yb290LCAw LCBjb3VudCwgYmwtPmJsX3JhZGl4LAo+LSDCoMKgwqAgYmwtPmJsX3NraXAsIGJsLT5ibF9jdXJz b3IpOwo+KyDCoMKgwqAgYmwtPmJsX2N1cnNvcik7Cj5pZiAoYmxrICE9IFNXQVBCTEtfTk9ORSkg ewo+YmwtPmJsX2N1cnNvciA9IGJsayArIGNvdW50Owo+cmV0dXJuIChibGspOwo+QEAgLTI1Nyw3 ICsyNzUsNyBAQCB2b2lkCj5ibGlzdF9mcmVlKGJsaXN0X3QgYmwsIGRhZGRyX3QgYmxrbm8sIGRh ZGRyX3QgY291bnQpCj57Cj4tIGJsc3RfbWV0YV9mcmVlKGJsLT5ibF9yb290LCBibGtubywgY291 bnQsIGJsLT5ibF9yYWRpeCwgYmwtPmJsX3NraXAsIDApOwo+KyBibHN0X21ldGFfZnJlZShibC0+ Ymxfcm9vdCwgYmxrbm8sIGNvdW50LCBibC0+YmxfcmFkaXgsIDApOwo+fQo+LyoKPkBAIC0yNzAs OCArMjg4LDcgQEAgZGFkZHJfdAo+Ymxpc3RfZmlsbChibGlzdF90IGJsLCBkYWRkcl90IGJsa25v LCBkYWRkcl90IGNvdW50KQo+ewo+LSByZXR1cm4gKGJsc3RfbWV0YV9maWxsKGJsLT5ibF9yb290 LCBibGtubywgY291bnQsIGJsLT5ibF9yYWRpeCwKPi0gwqDCoMKgIGJsLT5ibF9za2lwLCAwKSk7 Cj4rIHJldHVybiAoYmxzdF9tZXRhX2ZpbGwoYmwtPmJsX3Jvb3QsIGJsa25vLCBjb3VudCwgYmwt PmJsX3JhZGl4LCAwKSk7Cj59Cj4vKgo+QEAgLTI5MCw3ICszMDcsNyBAQCBibGlzdF9yZXNpemUo Ymxpc3RfdCAqcGJsLCBkYWRkcl90IGNvdW50LCBpbnQgZnJlZW5ldywKPsKgwqDCoMKgICpwYmwg PSBuZXdibDsKPsKgwqDCoMKgIGlmIChjb3VudCA+IHNhdmUtPmJsX2Jsb2NrcykKPsKgwqDCoCBj b3VudCA9IHNhdmUtPmJsX2Jsb2NrczsKPi3CoMKgwqAgYmxzdF9jb3B5KHNhdmUtPmJsX3Jvb3Qs IDAsIHNhdmUtPmJsX3JhZGl4LCBzYXZlLT5ibF9za2lwLCBuZXdibCwgY291bnQpOwo+K8KgwqDC oCBibHN0X2NvcHkoc2F2ZS0+Ymxfcm9vdCwgMCwgc2F2ZS0+YmxfcmFkaXgsIG5ld2JsLCBjb3Vu dCk7Cj7CoMKgwqDCoCAvKgo+wqDCoMKgwqDCoCAqIElmIHJlc2l6aW5nIHVwd2FyZHMsIHNob3Vs ZCB3ZSBmcmVlIHRoZSBuZXcgc3BhY2Ugb3Igbm90Pwo+QEAgLTMwOSw4ICszMjYsOCBAQCBibGlz dF9yZXNpemUoYmxpc3RfdCAqcGJsLCBkYWRkcl90IGNvdW50LCBpbnQgZnJlZW5ldywKPnZvaWQK PmJsaXN0X3ByaW50KGJsaXN0X3QgYmwpCj57Cj4tIHByaW50ZigiQkxJU1Qge1xuIik7Cj4tIGJs c3RfcmFkaXhfcHJpbnQoYmwtPmJsX3Jvb3QsIDAsIGJsLT5ibF9yYWRpeCwgYmwtPmJsX3NraXAs IDQpOwo+KyBwcmludGYoIkJMSVNUIGN1cnNvciA9ICUwOGp4IHtcbiIsICh1aW50bWF4X3QpYmwt PmJsX2N1cnNvcik7Cj4rIGJsc3RfcmFkaXhfcHJpbnQoYmwtPmJsX3Jvb3QsIDAsIGJsLT5ibF9y YWRpeCwgNCk7Cj5wcmludGYoIn1cbiIpOwo+fQo+QEAgLTQyNiw5ICs0NDMsOSBAQCBibHN0X2xl YWZfYWxsb2MoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgYmxrLCBpbnQgY291bnQKPsKgICovCj5z dGF0aWMgZGFkZHJfdAo+YmxzdF9tZXRhX2FsbG9jKGJsbWV0YV90ICpzY2FuLCBkYWRkcl90IGJs aywgZGFkZHJfdCBjb3VudCwgZGFkZHJfdCByYWRpeCwKPi3CoMKgwqAgZGFkZHJfdCBza2lwLCBk YWRkcl90IGN1cnNvcikKPivCoMKgwqAgZGFkZHJfdCBjdXJzb3IpCj57Cj4tIGRhZGRyX3QgaSwg bmV4dF9za2lwLCByOwo+KyBkYWRkcl90IGksIG5leHRfc2tpcCwgciwgc2tpcDsKPmludCBjaGls ZDsKPmJvb2wgc2Nhbl9mcm9tX3N0YXJ0Owo+QEAgLTQ0Myw2ICs0NjAsNyBAQCBibHN0X21ldGFf YWxsb2MoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgYmxrLCBkYWRkcl90IGMKPnNjYW4tPmJtX2Jp Z2hpbnQgPSBzY2FuLT51LmJtdV9hdmFpbDsKPnJldHVybiAoU1dBUEJMS19OT05FKTsKPn0KPisg c2tpcCA9IHJhZGl4X3RvX3NraXAocmFkaXgpOwo+bmV4dF9za2lwID0gc2tpcCAvIEJMSVNUX01F VEFfUkFESVg7Cj4vKgo+QEAgLTQ1Niw3ICs0NzQsNyBAQCBibHN0X21ldGFfYWxsb2MoYmxtZXRh X3QgKnNjYW4sIGRhZGRyX3QgYmxrLCBkYWRkcl90IGMKPiogUmVpbml0aWFsaXplIGVhY2ggb2Yg dGhlIG1ldGEgbm9kZSdzIGNoaWxkcmVuLsKgIEFuIEFMTC1GUkVFCj4qIG1ldGEgbm9kZSBjYW5u b3QgaGF2ZSBhIHRlcm1pbmF0b3IgaW4gYW55IHN1YnRyZWUuCj4qLwo+LSBmb3IgKGkgPSAxOyBp IDw9IHNraXA7IGkgKz0gbmV4dF9za2lwKSB7Cj4rIGZvciAoaSA9IDE7IGkgPCBza2lwOyBpICs9 IG5leHRfc2tpcCkgewo+aWYgKG5leHRfc2tpcCA9PSAxKQo+c2NhbltpXS51LmJtdV9iaXRtYXAg PSAodV9kYWRkcl90KS0xOwo+ZWxzZQo+QEAgLTQ3NywxMyArNDk1LDEzIEBAIGJsc3RfbWV0YV9h bGxvYyhibG1ldGFfdCAqc2NhbiwgZGFkZHJfdCBibGssIGRhZGRyX3QgYwo+c2Nhbl9mcm9tX3N0 YXJ0ID0gY3Vyc29yID09IGJsazsKPmNoaWxkID0gKGN1cnNvciAtIGJsaykgLyByYWRpeDsKPmJs ayArPSBjaGlsZCAqIHJhZGl4Owo+LSBmb3IgKGkgPSAxICsgY2hpbGQgKiBuZXh0X3NraXA7IGkg PD0gc2tpcDsgaSArPSBuZXh0X3NraXApIHsKPisgZm9yIChpID0gMSArIGNoaWxkICogbmV4dF9z a2lwOyBpIDwgc2tpcDsgaSArPSBuZXh0X3NraXApIHsKPmlmIChjb3VudCA8PSBzY2FuW2ldLmJt X2JpZ2hpbnQpIHsKPi8qCj4qIFRoZSBhbGxvY2F0aW9uIG1pZ2h0IGZpdCBpbiB0aGUgaSd0aCBz dWJ0cmVlLgo+Ki8KPnIgPSBibHN0X21ldGFfYWxsb2MoJnNjYW5baV0sIGJsaywgY291bnQsIHJh ZGl4LAo+LSDCoMKgwqAgbmV4dF9za2lwIC0gMSwgY3Vyc29yID4gYmxrID8gY3Vyc29yIDogYmxr KTsKPisgwqDCoMKgIGN1cnNvciA+IGJsayA/IGN1cnNvciA6IGJsayk7Cj5pZiAociAhPSBTV0FQ QkxLX05PTkUpIHsKPnNjYW4tPnUuYm11X2F2YWlsIC09IGNvdW50Owo+cmV0dXJuIChyKTsKPkBA IC01NTIsMTUgKzU3MCwxNiBAQCBibHN0X2xlYWZfZnJlZShibG1ldGFfdCAqc2NhbiwgZGFkZHJf dCBibGssIGludCBjb3VudCkKPsKgICovCj5zdGF0aWMgdm9pZAo+YmxzdF9tZXRhX2ZyZWUoYmxt ZXRhX3QgKnNjYW4sIGRhZGRyX3QgZnJlZUJsaywgZGFkZHJfdCBjb3VudCwgZGFkZHJfdCByYWRp eCwKPi3CoMKgwqAgZGFkZHJfdCBza2lwLCBkYWRkcl90IGJsaykKPivCoMKgwqAgZGFkZHJfdCBi bGspCj57Cj4tIGRhZGRyX3QgaSwgbmV4dF9za2lwLCB2Owo+KyBkYWRkcl90IGksIG5leHRfc2tp cCwgc2tpcCwgdjsKPmludCBjaGlsZDsKPmlmIChzY2FuLT5ibV9iaWdoaW50ID09IChkYWRkcl90 KS0xKQo+cGFuaWMoImZyZWVpbmcgaW52YWxpZCByYW5nZSIpOwo+aWYgKHJhZGl4ID09IEJMSVNU X0JNQVBfUkFESVgpCj5yZXR1cm4gKGJsc3RfbGVhZl9mcmVlKHNjYW4sIGZyZWVCbGssIGNvdW50 KSk7Cj4rIHNraXAgPSByYWRpeF90b19za2lwKHJhZGl4KTsKPm5leHRfc2tpcCA9IHNraXAgLyBC TElTVF9NRVRBX1JBRElYOwo+aWYgKHNjYW4tPnUuYm11X2F2YWlsID09IDApIHsKPkBAIC01NzIs NyArNTkxLDcgQEAgYmxzdF9tZXRhX2ZyZWUoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgZnJlZUJs aywgZGFkZHJfCj5zY2FuLT5ibV9iaWdoaW50ID0gY291bnQ7Cj5pZiAoY291bnQgIT0gcmFkaXgp wqAgewo+LSBmb3IgKGkgPSAxOyBpIDw9IHNraXA7IGkgKz0gbmV4dF9za2lwKSB7Cj4rIGZvciAo aSA9IDE7IGkgPCBza2lwOyBpICs9IG5leHRfc2tpcCkgewo+aWYgKHNjYW5baV0uYm1fYmlnaGlu dCA9PSAoZGFkZHJfdCktMSkKPmJyZWFrOwo+c2NhbltpXS5ibV9iaWdoaW50ID0gMDsKPkBAIC02 MDksMTEgKzYyOCwxMSBAQCBibHN0X21ldGFfZnJlZShibG1ldGFfdCAqc2NhbiwgZGFkZHJfdCBm cmVlQmxrLCBkYWRkcl8KPmNoaWxkID0gKGZyZWVCbGsgLSBibGspIC8gcmFkaXg7Cj5ibGsgKz0g Y2hpbGQgKiByYWRpeDsKPmkgPSAxICsgY2hpbGQgKiBuZXh0X3NraXA7Cj4tIHdoaWxlIChpIDw9 IHNraXAgJiYgYmxrIDwgZnJlZUJsayArIGNvdW50KSB7Cj4rIHdoaWxlIChpIDwgc2tpcCAmJiBi bGsgPCBmcmVlQmxrICsgY291bnQpIHsKPnYgPSBibGsgKyByYWRpeCAtIGZyZWVCbGs7Cj5pZiAo diA+IGNvdW50KQo+diA9IGNvdW50Owo+LSBibHN0X21ldGFfZnJlZSgmc2NhbltpXSwgZnJlZUJs aywgdiwgcmFkaXgsIG5leHRfc2tpcCAtIDEsIGJsayk7Cj4rIGJsc3RfbWV0YV9mcmVlKCZzY2Fu W2ldLCBmcmVlQmxrLCB2LCByYWRpeCwgYmxrKTsKPmlmIChzY2FuLT5ibV9iaWdoaW50IDwgc2Nh bltpXS5ibV9iaWdoaW50KQo+c2Nhbi0+Ym1fYmlnaGludCA9IHNjYW5baV0uYm1fYmlnaGludDsK PmNvdW50IC09IHY7Cj5AQCAtNjMwLDEwICs2NDksMTAgQEAgYmxzdF9tZXRhX2ZyZWUoYmxtZXRh X3QgKnNjYW4sIGRhZGRyX3QgZnJlZUJsaywgZGFkZHJfCj7CoCAqIHRyZWUuwqAgVGhlIHNwYWNl IG1heSBub3QgYWxyZWFkeSBiZSBmcmVlIGluIHRoZSBkZXN0aW5hdGlvbi4KPsKgICovCj5zdGF0 aWMgdm9pZAo+LWJsc3RfY29weShibG1ldGFfdCAqc2NhbiwgZGFkZHJfdCBibGssIGRhZGRyX3Qg cmFkaXgsIGRhZGRyX3Qgc2tpcCwKPi3CoMKgwqAgYmxpc3RfdCBkZXN0LCBkYWRkcl90IGNvdW50 KQo+K2Jsc3RfY29weShibG1ldGFfdCAqc2NhbiwgZGFkZHJfdCBibGssIGRhZGRyX3QgcmFkaXgs IGJsaXN0X3QgZGVzdCwKPivCoMKgwqAgZGFkZHJfdCBjb3VudCkKPnsKPi0gZGFkZHJfdCBpLCBu ZXh0X3NraXA7Cj4rIGRhZGRyX3QgaSwgbmV4dF9za2lwLCBza2lwOwo+LyoKPiogTGVhZiBub2Rl Cj5AQCAtNjc3LDIxICs2OTYsMjAgQEAgYmxzdF9jb3B5KGJsbWV0YV90ICpzY2FuLCBkYWRkcl90 IGJsaywgZGFkZHJfdCByYWRpeCwgCj59Cj4tIHJhZGl4IC89IEJMSVNUX01FVEFfUkFESVg7Cj4r IHNraXAgPSByYWRpeF90b19za2lwKHJhZGl4KTsKPm5leHRfc2tpcCA9IHNraXAgLyBCTElTVF9N RVRBX1JBRElYOwo+KyByYWRpeCAvPSBCTElTVF9NRVRBX1JBRElYOwo+LSBmb3IgKGkgPSAxOyBj b3VudCAmJiBpIDw9IHNraXA7IGkgKz0gbmV4dF9za2lwKSB7Cj4rIGZvciAoaSA9IDE7IGNvdW50 ICYmIGkgPCBza2lwOyBpICs9IG5leHRfc2tpcCkgewo+aWYgKHNjYW5baV0uYm1fYmlnaGludCA9 PSAoZGFkZHJfdCktMSkKPmJyZWFrOwo+aWYgKGNvdW50ID49IHJhZGl4KSB7Cj4tIGJsc3RfY29w eSgmc2NhbltpXSwgYmxrLCByYWRpeCwgbmV4dF9za2lwIC0gMSwgZGVzdCwKPi0gwqDCoMKgIHJh ZGl4KTsKPisgYmxzdF9jb3B5KCZzY2FuW2ldLCBibGssIHJhZGl4LCBkZXN0LCByYWRpeCk7Cj5j b3VudCAtPSByYWRpeDsKPn0gZWxzZSB7Cj5pZiAoY291bnQpIHsKPi0gYmxzdF9jb3B5KCZzY2Fu W2ldLCBibGssIHJhZGl4LCBuZXh0X3NraXAgLSAxLAo+LSDCoMKgwqAgZGVzdCwgY291bnQpOwo+ KyBibHN0X2NvcHkoJnNjYW5baV0sIGJsaywgcmFkaXgsIGRlc3QsIGNvdW50KTsKPn0KPmNvdW50 ID0gMDsKPn0KPkBAIC03MzMsOSArNzUxLDkgQEAgYmxzdF9sZWFmX2ZpbGwoYmxtZXRhX3QgKnNj YW4sIGRhZGRyX3QgYmxrLCBpbnQgY291bnQpCj7CoCAqLwo+c3RhdGljIGRhZGRyX3QKPmJsc3Rf bWV0YV9maWxsKGJsbWV0YV90ICpzY2FuLCBkYWRkcl90IGFsbG9jQmxrLCBkYWRkcl90IGNvdW50 LCBkYWRkcl90IHJhZGl4LAo+LcKgwqDCoCBkYWRkcl90IHNraXAsIGRhZGRyX3QgYmxrKQo+K8Kg wqDCoCBkYWRkcl90IGJsaykKPnsKPi0gZGFkZHJfdCBpLCBuYmxrcywgbmV4dF9za2lwLCB2Owo+ KyBkYWRkcl90IGksIG5ibGtzLCBuZXh0X3NraXAsIHNraXAsIHY7Cj5pbnQgY2hpbGQ7Cj5pZiAo c2Nhbi0+Ym1fYmlnaGludCA9PSAoZGFkZHJfdCktMSkKPkBAIC03NTgsNiArNzc2LDcgQEAgYmxz dF9tZXRhX2ZpbGwoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgYWxsb2NCbGssIGRhZGRyCj5zY2Fu LT5ibV9iaWdoaW50ID0gMDsKPnJldHVybiAobmJsa3MpOwo+fQo+KyBza2lwID0gcmFkaXhfdG9f c2tpcChyYWRpeCk7Cj5uZXh0X3NraXAgPSBza2lwIC8gQkxJU1RfTUVUQV9SQURJWDsKPi8qCj5A QCAtNzcxLDcgKzc5MCw3IEBAIGJsc3RfbWV0YV9maWxsKGJsbWV0YV90ICpzY2FuLCBkYWRkcl90 IGFsbG9jQmxrLCBkYWRkcgo+KiBSZWluaXRpYWxpemUgZWFjaCBvZiB0aGUgbWV0YSBub2RlJ3Mg Y2hpbGRyZW4uwqAgQW4gQUxMLUZSRUUKPiogbWV0YSBub2RlIGNhbm5vdCBoYXZlIGEgdGVybWlu YXRvciBpbiBhbnkgc3VidHJlZS4KPiovCj4tIGZvciAoaSA9IDE7IGkgPD0gc2tpcDsgaSArPSBu ZXh0X3NraXApIHsKPisgZm9yIChpID0gMTsgaSA8IHNraXA7IGkgKz0gbmV4dF9za2lwKSB7Cj5p ZiAobmV4dF9za2lwID09IDEpCj5zY2FuW2ldLnUuYm11X2JpdG1hcCA9ICh1X2RhZGRyX3QpLTE7 Cj5lbHNlCj5AQCAtNzg2LDEyICs4MDUsMTEgQEAgYmxzdF9tZXRhX2ZpbGwoYmxtZXRhX3QgKnNj YW4sIGRhZGRyX3QgYWxsb2NCbGssIGRhZGRyCj5jaGlsZCA9IChhbGxvY0JsayAtIGJsaykgLyBy YWRpeDsKPmJsayArPSBjaGlsZCAqIHJhZGl4Owo+aSA9IDEgKyBjaGlsZCAqIG5leHRfc2tpcDsK Pi0gd2hpbGUgKGkgPD0gc2tpcCAmJiBibGsgPCBhbGxvY0JsayArIGNvdW50KSB7Cj4rIHdoaWxl IChpIDwgc2tpcCAmJiBibGsgPCBhbGxvY0JsayArIGNvdW50KSB7Cj52ID0gYmxrICsgcmFkaXgg LSBhbGxvY0JsazsKPmlmICh2ID4gY291bnQpCj52ID0gY291bnQ7Cj4tIG5ibGtzICs9IGJsc3Rf bWV0YV9maWxsKCZzY2FuW2ldLCBhbGxvY0JsaywgdiwgcmFkaXgsCj4tIMKgwqDCoCBuZXh0X3Nr aXAgLSAxLCBibGspOwo+KyBuYmxrcyArPSBibHN0X21ldGFfZmlsbCgmc2NhbltpXSwgYWxsb2NC bGssIHYsIHJhZGl4LCBibGspOwo+Y291bnQgLT0gdjsKPmFsbG9jQmxrICs9IHY7Cj5ibGsgKz0g cmFkaXg7Cj5AQCAtODEwLDkgKzgyOCw5IEBAIGJsc3RfbWV0YV9maWxsKGJsbWV0YV90ICpzY2Fu LCBkYWRkcl90IGFsbG9jQmxrLCBkYWRkcgo+wqAgKiBSQURJWCB2YWx1ZXMgd2UgdXNlLgo+wqAg Ki8KPnN0YXRpYyBkYWRkcl90Cj4tYmxzdF9yYWRpeF9pbml0KGJsbWV0YV90ICpzY2FuLCBkYWRk cl90IHJhZGl4LCBkYWRkcl90IHNraXAsIGRhZGRyX3QgY291bnQpCj4rYmxzdF9yYWRpeF9pbml0 KGJsbWV0YV90ICpzY2FuLCBkYWRkcl90IHJhZGl4LCBkYWRkcl90IGNvdW50KQo+ewo+LSBkYWRk cl90IGksIG1lbWluZGV4LCBuZXh0X3NraXA7Cj4rIGRhZGRyX3QgaSwgbWVtaW5kZXgsIG5leHRf c2tpcCwgc2tpcDsKPm1lbWluZGV4ID0gMDsKPkBAIC04MzksMTcgKzg1NywxOCBAQCBibHN0X3Jh ZGl4X2luaXQoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgcmFkaXgsIGRhZGRyX3QKPnNjYW4tPnUu Ym11X2F2YWlsID0gMDsKPn0KPi0gcmFkaXggLz0gQkxJU1RfTUVUQV9SQURJWDsKPisgc2tpcCA9 IHJhZGl4X3RvX3NraXAocmFkaXgpOwo+bmV4dF9za2lwID0gc2tpcCAvIEJMSVNUX01FVEFfUkFE SVg7Cj4rIHJhZGl4IC89IEJMSVNUX01FVEFfUkFESVg7Cj4tIGZvciAoaSA9IDE7IGkgPD0gc2tp cDsgaSArPSBuZXh0X3NraXApIHsKPisgZm9yIChpID0gMTsgaSA8IHNraXA7IGkgKz0gbmV4dF9z a2lwKSB7Cj5pZiAoY291bnQgPj0gcmFkaXgpIHsKPi8qCj4qIEFsbG9jYXRlIHRoZSBlbnRpcmUg b2JqZWN0Cj4qLwo+bWVtaW5kZXggPSBpICsKPsKgwqDCoCBibHN0X3JhZGl4X2luaXQoKChzY2Fu KSA/ICZzY2FuW2ldIDogTlVMTCksIHJhZGl4LAo+LSDCoMKgwqAgbmV4dF9za2lwIC0gMSwgcmFk aXgpOwo+KyDCoMKgwqAgcmFkaXgpOwo+Y291bnQgLT0gcmFkaXg7Cj59IGVsc2UgaWYgKGNvdW50 ID4gMCkgewo+LyoKPkBAIC04NTcsNyArODc2LDcgQEAgYmxzdF9yYWRpeF9pbml0KGJsbWV0YV90 ICpzY2FuLCBkYWRkcl90IHJhZGl4LCBkYWRkcl90Cj4qLwo+bWVtaW5kZXggPSBpICsKPsKgwqDC oCBibHN0X3JhZGl4X2luaXQoKChzY2FuKSA/ICZzY2FuW2ldIDogTlVMTCksIHJhZGl4LAo+LSDC oMKgwqAgbmV4dF9za2lwIC0gMSwgY291bnQpOwo+KyDCoMKgwqAgY291bnQpOwo+Y291bnQgPSAw Owo+fSBlbHNlIHsKPi8qCj5AQCAtODc2LDEwICs4OTUsOSBAQCBibHN0X3JhZGl4X2luaXQoYmxt ZXRhX3QgKnNjYW4sIGRhZGRyX3QgcmFkaXgsIGRhZGRyX3QKPiNpZmRlZiBCTElTVF9ERUJVRwo+ c3RhdGljIHZvaWQKPi1ibHN0X3JhZGl4X3ByaW50KGJsbWV0YV90ICpzY2FuLCBkYWRkcl90IGJs aywgZGFkZHJfdCByYWRpeCwgZGFkZHJfdCBza2lwLAo+LcKgwqDCoCBpbnQgdGFiKQo+K2Jsc3Rf cmFkaXhfcHJpbnQoYmxtZXRhX3QgKnNjYW4sIGRhZGRyX3QgYmxrLCBkYWRkcl90IHJhZGl4LCBp bnQgdGFiKQo+ewo+LSBkYWRkcl90IGksIG5leHRfc2tpcDsKPisgZGFkZHJfdCBpLCBuZXh0X3Nr aXAsIHNraXA7Cj5pZiAocmFkaXggPT0gQkxJU1RfQk1BUF9SQURJWCkgewo+cHJpbnRmKAo+QEAg LTkyMCwxMSArOTM4LDEyIEBAIGJsc3RfcmFkaXhfcHJpbnQoYmxtZXRhX3QgKnNjYW4sIGRhZGRy X3QgYmxrLCBkYWRkcl90IAo+wqDCoMKgIChsb25nIGxvbmcpc2Nhbi0+Ym1fYmlnaGludAo+KTsK Pi0gcmFkaXggLz0gQkxJU1RfTUVUQV9SQURJWDsKPisgc2tpcCA9IHJhZGl4X3RvX3NraXAocmFk aXgpOwo+bmV4dF9za2lwID0gc2tpcCAvIEJMSVNUX01FVEFfUkFESVg7Cj4rIHJhZGl4IC89IEJM SVNUX01FVEFfUkFESVg7Cj50YWIgKz0gNDsKPi0gZm9yIChpID0gMTsgaSA8PSBza2lwOyBpICs9 IG5leHRfc2tpcCkgewo+KyBmb3IgKGkgPSAxOyBpIDwgc2tpcDsgaSArPSBuZXh0X3NraXApIHsK PmlmIChzY2FuW2ldLmJtX2JpZ2hpbnQgPT0gKGRhZGRyX3QpLTEpIHsKPnByaW50ZigKPsKgwqDC oCAiJSouKnMoJTA4bGx4LCVsbGQpOiBUZXJtaW5hdG9yXG4iLAo+QEAgLTkzMyw3ICs5NTIsNyBA QCBibHN0X3JhZGl4X3ByaW50KGJsbWV0YV90ICpzY2FuLCBkYWRkcl90IGJsaywgZGFkZHJfdCAK Pik7Cj5icmVhazsKPn0KPi0gYmxzdF9yYWRpeF9wcmludCgmc2NhbltpXSwgYmxrLCByYWRpeCwg bmV4dF9za2lwIC0gMSwgdGFiKTsKPisgYmxzdF9yYWRpeF9wcmludCgmc2NhbltpXSwgYmxrLCBy YWRpeCwgdGFiKTsKPmJsayArPSByYWRpeDsKPn0KPnRhYiAtPSA0Owo+TW9kaWZpZWQ6IGhlYWQv c3lzL3N5cy9ibGlzdC5oCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3N5cy9zeXMv Ymxpc3QuaCBUdWUgQXVnwqAgMSAwMzo0MDoxOSAyMDE3IChyMzIxODM5KQo+KysrIGhlYWQvc3lz L3N5cy9ibGlzdC5oIFR1ZSBBdWfCoCAxIDAzOjUxOjI2IDIwMTcgKHIzMjE4NDApCj5AQCAtODEs NyArODEsNiBAQCB0eXBlZGVmIHN0cnVjdCBibG1ldGEgewo+dHlwZWRlZiBzdHJ1Y3QgYmxpc3Qg ewo+ZGFkZHJfdCBibF9ibG9ja3M7IC8qIGFyZWEgb2YgY292ZXJhZ2UgKi8KPmRhZGRyX3QgYmxf cmFkaXg7IC8qIGNvdmVyYWdlIHJhZGl4ICovCj4tIGRhZGRyX3QgYmxfc2tpcDsgLyogc3RhcnRp bmcgc2tpcCAqLwo+ZGFkZHJfdCBibF9jdXJzb3I7IC8qIG5leHQtZml0IHNlYXJjaCBzdGFydHMg YXQgKi8KPmJsbWV0YV90ICpibF9yb290OyAvKiByb290IG9mIHJhZGl4IHRyZWUgKi8KPn0gKmJs aXN0X3Q7Cg== From owner-svn-src-head@freebsd.org Tue Aug 1 04:49:55 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 729E0DCA281; Tue, 1 Aug 2017 04:49:55 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 399A27C2AD; Tue, 1 Aug 2017 04:49:55 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v714nstj030906; Tue, 1 Aug 2017 04:49:54 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v714ns4b030905; Tue, 1 Aug 2017 04:49:54 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201708010449.v714ns4b030905@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 1 Aug 2017 04:49:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r321842 - head/cddl/contrib/opensolaris/cmd/lockstat X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/cmd/lockstat X-SVN-Commit-Revision: 321842 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Aug 2017 04:49:55 -0000 Author: markj Date: Tue Aug 1 04:49:54 2017 New Revision: 321842 URL: https://svnweb.freebsd.org/changeset/base/321842 Log: Let lockstat use ksyms(4)'s mmap interface. The workaround described in the deleted comment is no longer needed. MFC after: 1 week Modified: head/cddl/contrib/opensolaris/cmd/lockstat/sym.c Modified: head/cddl/contrib/opensolaris/cmd/lockstat/sym.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/lockstat/sym.c Tue Aug 1 04:16:52 2017 (r321841) +++ head/cddl/contrib/opensolaris/cmd/lockstat/sym.c Tue Aug 1 04:49:54 2017 (r321842) @@ -194,33 +194,9 @@ symtab_init(void) return (-1); #endif -#ifdef illumos (void) elf_version(EV_CURRENT); elf = elf_begin(fd, ELF_C_READ, NULL); -#else - /* - * XXX - libelf needs to be fixed so it will work with - * non 'ordinary' files like /dev/ksyms. The following - * is a work around for now. - */ - if (elf_version(EV_CURRENT) == EV_NONE) { - close(fd); - return (-1); - } - if (ioctl(fd, KIOCGSIZE, &sz) < 0) { - close(fd); - return (-1); - } - if (ioctl(fd, KIOCGADDR, &ksyms) < 0) { - close(fd); - return (-1); - } - if ((elf = elf_memory(ksyms, sz)) == NULL) { - close(fd); - return (-1); - } -#endif for (cnt = 1; (scn = elf_nextscn(elf, scn)) != NULL; cnt++) { Shdr *shdr = elf_getshdr(scn);