From owner-freebsd-pf@FreeBSD.ORG Fri May 8 17:19:55 2015 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0AB5D9CC for ; Fri, 8 May 2015 17:19:55 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [IPv6:2001:4f8:3:ffe0:406a:0:50:2]) (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 DC3A414B9 for ; Fri, 8 May 2015 17:19:54 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [127.0.1.5]) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9) with ESMTP id t48HJsrc045022 for ; Fri, 8 May 2015 17:19:54 GMT (envelope-from daemon-user@phabric-backend.isc.freebsd.org) Received: (from daemon-user@localhost) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9/Submit) id t48HJsnJ045021; Fri, 8 May 2015 17:19:54 GMT (envelope-from daemon-user) Date: Fri, 8 May 2015 17:19:54 +0000 To: freebsd-pf@freebsd.org From: "nvass-gmx.com (Nikos Vassiliadis)" Subject: [Differential] [Updated, 197 lines] D1944: PF and VIMAGE fixes Message-ID: <9ba5b83b76886d7d482c70e02f5fe274@localhost.localdomain> X-Priority: 3 Thread-Topic: D1944: PF and VIMAGE fixes X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: In-Reply-To: References: Thread-Index: NDc2NzM0MzY4OTdiYThiNTU1MjY2ZDZmMTJiIFVM8Do= Precedence: bulk X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_9ba5b83b76886d7d482c70e02f5fe274" X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.20 List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 May 2015 17:19:55 -0000 --b1_9ba5b83b76886d7d482c70e02f5fe274 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit nvass-gmx.com updated this revision to Diff 5290. nvass-gmx.com added a comment. Hi, Please review this. It updates the previous patch, with another way to unload pf. Eventhandlers are also touched, they should behave correctly now. CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D1944?vs=3915&id=5290 REVISION DETAIL https://reviews.freebsd.org/D1944 AFFECTED FILES sys/net/pfvar.h sys/netpfil/pf/pf.c sys/netpfil/pf/pf_if.c sys/netpfil/pf/pf_ioctl.c sys/netpfil/pf/pf_norm.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: nvass-gmx.com, bz, zec, trociny, glebius, rodrigc, kristof, gnn Cc: robak, freebsd-virtualization, freebsd-pf, freebsd-net --b1_9ba5b83b76886d7d482c70e02f5fe274 Content-Type: text/x-patch; charset=utf-8; name="D1944.5290.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D1944.5290.patch" ZGlmZiAtLWdpdCBhL3N5cy9uZXRwZmlsL3BmL3BmX25vcm0uYyBiL3N5cy9uZXRwZmlsL3BmL3Bm X25vcm0uYwotLS0gYS9zeXMvbmV0cGZpbC9wZi9wZl9ub3JtLmMKKysrIGIvc3lzL25ldHBmaWwv cGYvcGZfbm9ybS5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAib3B0X3BmLmgiCiAKICNp bmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CiAjaW5jbHVkZSA8 c3lzL2xvY2suaD4KICNpbmNsdWRlIDxzeXMvbWJ1Zi5oPgogI2luY2x1ZGUgPHN5cy9tdXRleC5o PgpAQCAtMTA4LDYgKzEwOSw3IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IG10eCBwZl9mcmFnX210 eDsKK01UWF9TWVNJTklUKHBmX2ZyYWdfbXR4LCAmcGZfZnJhZ19tdHgsICJwZiBmcmFnbWVudHMi LCBNVFhfREVGKTsKICNkZWZpbmUgUEZfRlJBR19MT0NLKCkJCW10eF9sb2NrKCZwZl9mcmFnX210 eCkKICNkZWZpbmUgUEZfRlJBR19VTkxPQ0soKQltdHhfdW5sb2NrKCZwZl9mcmFnX210eCkKICNk ZWZpbmUgUEZfRlJBR19BU1NFUlQoKQltdHhfYXNzZXJ0KCZwZl9mcmFnX210eCwgTUFfT1dORUQp CkBAIC0xODEsNyArMTgzLDcgQEAKICNlbmRpZgkvKiBJTkVUICovCiAKIHZvaWQKLXBmX25vcm1h bGl6ZV9pbml0KHZvaWQpCitwZl92bmV0X25vcm1hbGl6ZV9pbml0KHZvaWQpCiB7CiAKIAlWX3Bm X2ZyYWdfeiA9IHVtYV96Y3JlYXRlKCJwZiBmcmFncyIsIHNpemVvZihzdHJ1Y3QgcGZfZnJhZ21l bnQpLApAQCAtMTk3LDggKzE5OSw2IEBACiAJdW1hX3pvbmVfc2V0X21heChWX3BmX2ZyZW50X3os IFBGRlJBR19GUkVOVF9ISVdBVCk7CiAJdW1hX3pvbmVfc2V0X3dhcm5pbmcoVl9wZl9mcmVudF96 LCAiUEYgZnJhZyBlbnRyaWVzIGxpbWl0IHJlYWNoZWQiKTsKIAotCW10eF9pbml0KCZwZl9mcmFn X210eCwgInBmIGZyYWdtZW50cyIsIE5VTEwsIE1UWF9ERUYpOwotCiAJVEFJTFFfSU5JVCgmVl9w Zl9mcmFncXVldWUpOwogCVRBSUxRX0lOSVQoJlZfcGZfY2FjaGVxdWV1ZSk7CiB9CkBAIC0yMTAs OCArMjEwLDYgQEAKIAl1bWFfemRlc3Ryb3koVl9wZl9zdGF0ZV9zY3J1Yl96KTsKIAl1bWFfemRl c3Ryb3koVl9wZl9mcmVudF96KTsKIAl1bWFfemRlc3Ryb3koVl9wZl9mcmFnX3opOwotCi0JbXR4 X2Rlc3Ryb3koJnBmX2ZyYWdfbXR4KTsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvc3lz L25ldHBmaWwvcGYvcGZfaW9jdGwuYyBiL3N5cy9uZXRwZmlsL3BmL3BmX2lvY3RsLmMKLS0tIGEv c3lzL25ldHBmaWwvcGYvcGZfaW9jdGwuYworKysgYi9zeXMvbmV0cGZpbC9wZi9wZl9pb2N0bC5j CkBAIC04Nyw3ICs4Nyw4IEBACiAjaW5jbHVkZSA8bmV0L2FsdHEvYWx0cS5oPgogI2VuZGlmCiAK LXN0YXRpYyBpbnQJCSBwZmF0dGFjaCh2b2lkKTsKK3N0YXRpYyBpbnQJCSBwZl92bmV0X2luaXQo dm9pZCk7CitzdGF0aWMgaW50CQkgcGZfdm5ldF91bmluaXQodm9pZCk7CiBzdGF0aWMgc3RydWN0 IHBmX3Bvb2wJKnBmX2dldF9wb29sKGNoYXIgKiwgdV9pbnQzMl90LCB1X2ludDhfdCwgdV9pbnQz Ml90LAogCQkJICAgIHVfaW50OF90LCB1X2ludDhfdCwgdV9pbnQ4X3QpOwogCkBAIC0xNDksNiAr MTUwLDcgQEAKICNkZWZpbmUgRFBGUFJJTlRGKG4sIHgpIGlmIChWX3BmX3N0YXR1cy5kZWJ1ZyA+ PSAobikpIHByaW50ZiB4CiAKIHN0cnVjdCBjZGV2ICpwZl9kZXY7CitpbnQgbnVtYmVyX29mX3Zu ZXRzID0gMDsKIAogLyoKICAqIFhYWCAtIFRoZXNlIGFyZSBuZXcgYW5kIG5lZWQgdG8gYmUgY2hl Y2tlZCB3aGVuIG1vdmVpbmcgdG8gYSBuZXcgdmVyc2lvbgpAQCAtMjA1LDE3ICsyMDcsMTYgQEAK IHBmbG9nX3BhY2tldF90CQkJKnBmbG9nX3BhY2tldF9wdHIgPSBOVUxMOwogCiBzdGF0aWMgaW50 Ci1wZmF0dGFjaCh2b2lkKQorcGZfdm5ldF9pbml0KHZvaWQpCiB7CiAJdV9pbnQzMl90ICpteV90 aW1lb3V0ID0gVl9wZl9kZWZhdWx0X3J1bGUudGltZW91dDsKIAlpbnQgZXJyb3I7CiAKLQlpZiAo SVNfREVGQVVMVF9WTkVUKGN1cnZuZXQpKQotCQlwZl9tdGFnX2luaXRpYWxpemUoKTsKLQlwZl9p bml0aWFsaXplKCk7CisJbnVtYmVyX29mX3ZuZXRzKys7CisJcGZfdm5ldF9pbml0aWFsaXplKCk7 CiAJcGZyX2luaXRpYWxpemUoKTsKLQlwZmlfaW5pdGlhbGl6ZSgpOwotCXBmX25vcm1hbGl6ZV9p bml0KCk7CisJcGZpX3ZuZXRfaW5pdGlhbGl6ZSgpOworCXBmX3ZuZXRfbm9ybWFsaXplX2luaXQo KTsKIAogCVZfcGZfbGltaXRzW1BGX0xJTUlUX1NUQVRFU10ubGltaXQgPSBQRlNUQVRFX0hJV0FU OwogCVZfcGZfbGltaXRzW1BGX0xJTUlUX1NSQ19OT0RFU10ubGltaXQgPSBQRlNOT0RFX0hJV0FU OwpAQCAtMjg3LDcgKzI4OCw2MyBAQAogCiAJcmV0dXJuICgwKTsKIH0KK1ZORVRfU1lTSU5JVChw Zl92bmV0X2luaXQsIFNJX1NVQl9QUk9UT19JRkFUVEFDSERPTUFJTiwgU0lfT1JERVJfQU5ZIC0g MjU1LAorICAgIHBmX3ZuZXRfaW5pdCwgTlVMTCk7CiAKK3N0YXRpYyBpbnQKK3BmX3ZuZXRfdW5p bml0KHZvaWQpCit7CisJaW50IGVycm9yID0gMDsKKworCW51bWJlcl9vZl92bmV0cy0tOworCUtB U1NFUlQobnVtYmVyX29mX3ZuZXRzID49IDAsICgibnVtYmVyIG9mIHZuZXRzIDwgMCIpKTsKKwor CVBGX1JVTEVTX1JMT0NLKCk7CisJVl9wZl9lbmRfdGhyZWFkcysrOworCVBGX1JVTEVTX1JVTkxP Q0soKTsKKwl3YWtldXAocGZfcHVyZ2VfdGhyZWFkKTsKKwl3aGlsZSAoVl9wZl9lbmRfdGhyZWFk cyA8IDIpCisJCXBhdXNlKCJwZnVubGQiLCBoeiAvIDkpOworCisJVl9wZl9zdGF0dXMucnVubmlu ZyA9IDA7CisJc3dpX3JlbW92ZShWX3BmX3N3aV9jb29raWUpOworCWVycm9yID0gZGVob29rX3Bm KCk7CisJaWYgKGVycm9yKSB7CisJCS8qCisJCSAqIFNob3VsZCBub3QgaGFwcGVuIQorCQkgKiBY WFggRHVlIHRvIGVycm9yIGNvZGUgRVNSQ0gsIGtsZHVubG9hZCB3aWxsIHNob3cKKwkJICogYSBt ZXNzYWdlIGxpa2UgJ05vIHN1Y2ggcHJvY2VzcycuCisJCSAqLworCQlwcmludGYoIiVzIDogcGZp bCB1bnJlZ2lzdGVyYXRpb24gZmFpbFxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIGVycm9y OworCX0KKwlQRl9SVUxFU19XTE9DSygpOworCXNodXRkb3duX3BmKCk7CisJcGZfbm9ybWFsaXpl X2NsZWFudXAoKTsKKwlwZmlfY2xlYW51cCgpOworCXBmcl9jbGVhbnVwKCk7CisJcGZfb3NmcF9m bHVzaCgpOworCXBmX2NsZWFudXAoKTsKKworCS8qCisJICogRm9yIHRoZSBsYXN0IFZORVQgd2Ug cGVyZm9ybSB0aGUgZmluYWwgY2xlYW51cAorCSAqLworCWlmIChudW1iZXJfb2Zfdm5ldHMgPT0g MCkgeworCQlwZl91bmluaXRfZXZlbnRoYW5kbGVycygpOworCQlwZl9tdGFnX2NsZWFudXAoKTsK Kwl9CisJUEZfUlVMRVNfV1VOTE9DSygpOworCWlmIChudW1iZXJfb2Zfdm5ldHMgPT0gMCkgewor CQlkZXN0cm95X2RldihwZl9kZXYpOworCQlyd19kZXN0cm95KCZwZl9ydWxlc19sb2NrKTsKKwkJ c3hfZGVzdHJveSgmcGZfaW9jdGxfbG9jayk7CisJfQorCisJcmV0dXJuIChlcnJvcik7Cit9CitW TkVUX1NZU1VOSU5JVChwZl92bmV0X3VuaW5pdCwgU0lfU1VCX1BST1RPX0lGQVRUQUNIRE9NQUlO LCBTSV9PUkRFUl9BTlkgLSAyNTUsCisgICAgcGZfdm5ldF91bmluaXQsIE5VTEwpOworCiBzdGF0 aWMgc3RydWN0IHBmX3Bvb2wgKgogcGZfZ2V0X3Bvb2woY2hhciAqYW5jaG9yLCB1X2ludDMyX3Qg dGlja2V0LCB1X2ludDhfdCBydWxlX2FjdGlvbiwKICAgICB1X2ludDMyX3QgcnVsZV9udW1iZXIs IHVfaW50OF90IHJfbGFzdCwgdV9pbnQ4X3QgYWN0aXZlLApAQCAtMzcwNywyNyArMzc2NCwxMiBA QAogc3RhdGljIGludAogcGZfbG9hZCh2b2lkKQogewotCWludCBlcnJvcjsKIAotCVZORVRfSVRF UkFUT1JfREVDTCh2bmV0X2l0ZXIpOwotCi0JVk5FVF9MSVNUX1JMT0NLKCk7Ci0JVk5FVF9GT1JF QUNIKHZuZXRfaXRlcikgewotCQlDVVJWTkVUX1NFVCh2bmV0X2l0ZXIpOwotCQlWX3BmX3BmaWxf aG9va2VkID0gMDsKLQkJVl9wZl9lbmRfdGhyZWFkcyA9IDA7Ci0JCVRBSUxRX0lOSVQoJlZfcGZf dGFncyk7Ci0JCVRBSUxRX0lOSVQoJlZfcGZfcWlkcyk7Ci0JCUNVUlZORVRfUkVTVE9SRSgpOwot CX0KLQlWTkVUX0xJU1RfUlVOTE9DSygpOwotCiAJcndfaW5pdCgmcGZfcnVsZXNfbG9jaywgInBm IHJ1bGVzZXRzIik7CiAJc3hfaW5pdCgmcGZfaW9jdGxfbG9jaywgInBmIGlvY3RsIik7Ci0KIAlw Zl9kZXYgPSBtYWtlX2RldigmcGZfY2RldnN3LCAwLCAwLCAwLCAwNjAwLCBQRl9OQU1FKTsKLQlp ZiAoKGVycm9yID0gcGZhdHRhY2goKSkgIT0gMCkKLQkJcmV0dXJuIChlcnJvcik7CisJcGZfbXRh Z19pbml0aWFsaXplKCk7CisgICAgICAgIHBmX2luaXRfZXZlbnRoYW5kbGVycygpOwogCiAJcmV0 dXJuICgwKTsKIH0KQEAgLTM3MzUsNDAgKzM3NzcsOCBAQAogc3RhdGljIGludAogcGZfdW5sb2Fk KHZvaWQpCiB7Ci0JaW50IGVycm9yID0gMDsKIAotCVZfcGZfc3RhdHVzLnJ1bm5pbmcgPSAwOwot CXN3aV9yZW1vdmUoVl9wZl9zd2lfY29va2llKTsKLQllcnJvciA9IGRlaG9va19wZigpOwotCWlm IChlcnJvcikgewotCQkvKgotCQkgKiBTaG91bGQgbm90IGhhcHBlbiEKLQkJICogWFhYIER1ZSB0 byBlcnJvciBjb2RlIEVTUkNILCBrbGR1bmxvYWQgd2lsbCBzaG93Ci0JCSAqIGEgbWVzc2FnZSBs aWtlICdObyBzdWNoIHByb2Nlc3MnLgotCQkgKi8KLQkJcHJpbnRmKCIlcyA6IHBmaWwgdW5yZWdp c3RlcmF0aW9uIGZhaWxcbiIsIF9fRlVOQ1RJT05fXyk7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0J UEZfUlVMRVNfV0xPQ0soKTsKLQlzaHV0ZG93bl9wZigpOwotCVZfcGZfZW5kX3RocmVhZHMgPSAx OwotCXdoaWxlIChWX3BmX2VuZF90aHJlYWRzIDwgMikgewotCQl3YWtldXBfb25lKHBmX3B1cmdl X3RocmVhZCk7Ci0JCXJ3X3NsZWVwKHBmX3B1cmdlX3RocmVhZCwgJnBmX3J1bGVzX2xvY2ssIDAs ICJwZnRtbyIsIDApOwotCX0KLQlwZl9ub3JtYWxpemVfY2xlYW51cCgpOwotCXBmaV9jbGVhbnVw KCk7Ci0JcGZyX2NsZWFudXAoKTsKLQlwZl9vc2ZwX2ZsdXNoKCk7Ci0JcGZfY2xlYW51cCgpOwot CWlmIChJU19ERUZBVUxUX1ZORVQoY3Vydm5ldCkpCi0JCXBmX210YWdfY2xlYW51cCgpOwotCVBG X1JVTEVTX1dVTkxPQ0soKTsKLQlkZXN0cm95X2RldihwZl9kZXYpOwotCXJ3X2Rlc3Ryb3koJnBm X3J1bGVzX2xvY2spOwotCXN4X2Rlc3Ryb3koJnBmX2lvY3RsX2xvY2spOwotCi0JcmV0dXJuIChl cnJvcik7CisJcmV0dXJuICgwKTsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvc3lzL25l dHBmaWwvcGYvcGZfaWYuYyBiL3N5cy9uZXRwZmlsL3BmL3BmX2lmLmMKLS0tIGEvc3lzL25ldHBm aWwvcGYvcGZfaWYuYworKysgYi9zeXMvbmV0cGZpbC9wZi9wZl9pZi5jCkBAIC0xMDMsOSArMTAz LDExIEBACiBzdGF0aWMgVk5FVF9ERUZJTkUoc3RydWN0IHBmaV9saXN0LCBwZmlfdW5saW5rZWRf a2lmcyk7CiAjZGVmaW5lCVZfcGZpX3VubGlua2VkX2tpZnMJVk5FVChwZmlfdW5saW5rZWRfa2lm cykKIHN0YXRpYyBzdHJ1Y3QgbXR4IHBmaV91bmxua2RraWZzX210eDsKK01UWF9TWVNJTklUKHBm aV91bmxua2RraWZzX210eCwgJnBmaV91bmxua2RraWZzX210eCwgInBmIHVubGlua2VkIGludGVy ZmFjZXMiLAorICAgIE1UWF9ERUYpOwogCiB2b2lkCi1wZmlfaW5pdGlhbGl6ZSh2b2lkKQorcGZp X3ZuZXRfaW5pdGlhbGl6ZSh2b2lkKQogewogCXN0cnVjdCBpZmdfZ3JvdXAgKmlmZzsKIAlzdHJ1 Y3QgaWZuZXQgKmlmcDsKQEAgLTExNSw4ICsxMTcsNiBAQAogCVZfcGZpX2J1ZmZlciA9IG1hbGxv YyhWX3BmaV9idWZmZXJfbWF4ICogc2l6ZW9mKCpWX3BmaV9idWZmZXIpLAogCSAgICBQRklfTVRZ UEUsIE1fV0FJVE9LKTsKIAotCW10eF9pbml0KCZwZmlfdW5sbmtka2lmc19tdHgsICJwZiB1bmxp bmtlZCBpbnRlcmZhY2VzIiwgTlVMTCwgTVRYX0RFRik7Ci0KIAlraWYgPSBtYWxsb2Moc2l6ZW9m KCpraWYpLCBQRklfTVRZUEUsIE1fV0FJVE9LKTsKIAlQRl9SVUxFU19XTE9DSygpOwogCVZfcGZp X2FsbCA9IHBmaV9raWZfYXR0YWNoKGtpZiwgSUZHX0FMTCk7CkBAIC0xMjMsMTYgKzEyMywyNCBA QAogCVBGX1JVTEVTX1dVTkxPQ0soKTsKIAogCUlGTkVUX1JMT0NLKCk7Ci0JVEFJTFFfRk9SRUFD SChpZmcsICZWX2lmZ19oZWFkLCBpZmdfbmV4dCkKKwlUQUlMUV9GT1JFQUNIKGlmZywgJlZfaWZn X2hlYWQsIGlmZ19uZXh0KSB7CiAJCXBmaV9hdHRhY2hfaWZncm91cChpZmcpOwotCVRBSUxRX0ZP UkVBQ0goaWZwLCAmVl9pZm5ldCwgaWZfbGluaykKKwl9CisJVEFJTFFfRk9SRUFDSChpZnAsICZW X2lmbmV0LCBpZl9saW5rKSB7CisJCUNVUlZORVRfU0VUKGlmcC0+aWZfdm5ldCk7CiAJCXBmaV9h dHRhY2hfaWZuZXQoaWZwKTsKKwkJQ1VSVk5FVF9SRVNUT1JFKCk7CisJfQogCUlGTkVUX1JVTkxP Q0soKTsKK30KIAordm9pZAorcGZfaW5pdF9ldmVudGhhbmRsZXJzKHZvaWQpIHsKKwogCXBmaV9h dHRhY2hfY29va2llID0gRVZFTlRIQU5ETEVSX1JFR0lTVEVSKGlmbmV0X2Fycml2YWxfZXZlbnQs Ci0JICAgIHBmaV9hdHRhY2hfaWZuZXRfZXZlbnQsIE5VTEwsIEVWRU5USEFORExFUl9QUklfQU5Z KTsKKwkgICAgcGZpX2F0dGFjaF9pZm5ldF9ldmVudCwgY3Vydm5ldCwgRVZFTlRIQU5ETEVSX1BS SV9BTlkpOwogCXBmaV9kZXRhY2hfY29va2llID0gRVZFTlRIQU5ETEVSX1JFR0lTVEVSKGlmbmV0 X2RlcGFydHVyZV9ldmVudCwKLQkgICAgcGZpX2RldGFjaF9pZm5ldF9ldmVudCwgTlVMTCwgRVZF TlRIQU5ETEVSX1BSSV9BTlkpOworCSAgICBwZmlfZGV0YWNoX2lmbmV0X2V2ZW50LCBjdXJ2bmV0 LCBFVkVOVEhBTkRMRVJfUFJJX0FOWSk7CiAJcGZpX2F0dGFjaF9ncm91cF9jb29raWUgPSBFVkVO VEhBTkRMRVJfUkVHSVNURVIoZ3JvdXBfYXR0YWNoX2V2ZW50LAogCSAgICBwZmlfYXR0YWNoX2dy b3VwX2V2ZW50LCBjdXJ2bmV0LCBFVkVOVEhBTkRMRVJfUFJJX0FOWSk7CiAJcGZpX2NoYW5nZV9n cm91cF9jb29raWUgPSBFVkVOVEhBTkRMRVJfUkVHSVNURVIoZ3JvdXBfY2hhbmdlX2V2ZW50LApA QCAtMTQwLDEzICsxNDgsMTEgQEAKIAlwZmlfZGV0YWNoX2dyb3VwX2Nvb2tpZSA9IEVWRU5USEFO RExFUl9SRUdJU1RFUihncm91cF9kZXRhY2hfZXZlbnQsCiAJICAgIHBmaV9kZXRhY2hfZ3JvdXBf ZXZlbnQsIGN1cnZuZXQsIEVWRU5USEFORExFUl9QUklfQU5ZKTsKIAlwZmlfaWZhZGRyX2V2ZW50 X2Nvb2tpZSA9IEVWRU5USEFORExFUl9SRUdJU1RFUihpZmFkZHJfZXZlbnQsCi0JICAgIHBmaV9p ZmFkZHJfZXZlbnQsIE5VTEwsIEVWRU5USEFORExFUl9QUklfQU5ZKTsKKwkgICAgcGZpX2lmYWRk cl9ldmVudCwgY3Vydm5ldCwgRVZFTlRIQU5ETEVSX1BSSV9BTlkpOwogfQogCiB2b2lkCi1wZmlf Y2xlYW51cCh2b2lkKQotewotCXN0cnVjdCBwZmlfa2lmICpwOworcGZfdW5pbml0X2V2ZW50aGFu ZGxlcnModm9pZCkgewogCiAJRVZFTlRIQU5ETEVSX0RFUkVHSVNURVIoaWZuZXRfYXJyaXZhbF9l dmVudCwgcGZpX2F0dGFjaF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGlmbmV0 X2RlcGFydHVyZV9ldmVudCwgcGZpX2RldGFjaF9jb29raWUpOwpAQCAtMTU0LDcgKzE2MCwxMyBA QAogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGdyb3VwX2NoYW5nZV9ldmVudCwgcGZpX2NoYW5n ZV9ncm91cF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGdyb3VwX2RldGFjaF9l dmVudCwgcGZpX2RldGFjaF9ncm91cF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVS KGlmYWRkcl9ldmVudCwgcGZpX2lmYWRkcl9ldmVudF9jb29raWUpOworfQogCit2b2lkCitwZmlf Y2xlYW51cCh2b2lkKQoreworCXN0cnVjdCBwZmlfa2lmICpwOworCiAJVl9wZmlfYWxsID0gTlVM TDsKIAl3aGlsZSAoKHAgPSBSQl9NSU4ocGZpX2lmaGVhZCwgJlZfcGZpX2lmcykpKSB7CiAJCVJC X1JFTU9WRShwZmlfaWZoZWFkLCAmVl9wZmlfaWZzLCBwKTsKQEAgLTE2Niw4ICsxNzgsNiBAQAog CQlmcmVlKHAsIFBGSV9NVFlQRSk7CiAJfQogCi0JbXR4X2Rlc3Ryb3koJnBmaV91bmxua2RraWZz X210eCk7Ci0KIAlmcmVlKFZfcGZpX2J1ZmZlciwgUEZJX01UWVBFKTsKIH0KIApAQCAtODEzLDkg KzgyMyw3IEBACiBwZmlfYXR0YWNoX2dyb3VwX2V2ZW50KHZvaWQgKmFyZyAsIHN0cnVjdCBpZmdf Z3JvdXAgKmlmZykKIHsKIAotCUNVUlZORVRfU0VUKChzdHJ1Y3Qgdm5ldCAqKWFyZyk7CiAJcGZp X2F0dGFjaF9pZmdyb3VwKGlmZyk7Ci0JQ1VSVk5FVF9SRVNUT1JFKCk7CiB9CiAKIHN0YXRpYyB2 b2lkCkBAIC04MjUsMTMgKzgzMywxMSBAQAogCiAJa2lmID0gbWFsbG9jKHNpemVvZigqa2lmKSwg UEZJX01UWVBFLCBNX1dBSVRPSyk7CiAKLQlDVVJWTkVUX1NFVCgoc3RydWN0IHZuZXQgKilhcmcp OwogCVBGX1JVTEVTX1dMT0NLKCk7CiAJVl9wZmlfdXBkYXRlKys7CiAJa2lmID0gcGZpX2tpZl9h dHRhY2goa2lmLCBnbmFtZSk7CiAJcGZpX2tpZl91cGRhdGUoa2lmKTsKIAlQRl9SVUxFU19XVU5M T0NLKCk7Ci0JQ1VSVk5FVF9SRVNUT1JFKCk7CiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQg YS9zeXMvbmV0cGZpbC9wZi9wZi5jIGIvc3lzL25ldHBmaWwvcGYvcGYuYwotLS0gYS9zeXMvbmV0 cGZpbC9wZi9wZi5jCisrKyBiL3N5cy9uZXRwZmlsL3BmL3BmLmMKQEAgLTE1MSw2ICsxNTEsNyBA QAogI2RlZmluZQlWX3BmX3NlbmRxdWV1ZQlWTkVUKHBmX3NlbmRxdWV1ZSkKIAogc3RhdGljIHN0 cnVjdCBtdHggcGZfc2VuZHF1ZXVlX210eDsKK01UWF9TWVNJTklUKHBmX3NlbmRxdWV1ZV9tdHgs ICZwZl9zZW5kcXVldWVfbXR4LCAicGYgc2VuZCBxdWV1ZSIsIE1UWF9ERUYpOwogI2RlZmluZQlQ Rl9TRU5EUV9MT0NLKCkJCW10eF9sb2NrKCZwZl9zZW5kcXVldWVfbXR4KQogI2RlZmluZQlQRl9T RU5EUV9VTkxPQ0soKQltdHhfdW5sb2NrKCZwZl9zZW5kcXVldWVfbXR4KQogCkBAIC0xNzIsMTEg KzE3MywxNiBAQAogI2RlZmluZQlWX3BmX292ZXJsb2FkdGFzawlWTkVUKHBmX292ZXJsb2FkdGFz aykKIAogc3RhdGljIHN0cnVjdCBtdHggcGZfb3ZlcmxvYWRxdWV1ZV9tdHg7CitNVFhfU1lTSU5J VChwZl9vdmVybG9hZHF1ZXVlX210eCwgJnBmX292ZXJsb2FkcXVldWVfbXR4LAorICAgICJwZiBv dmVybG9hZC9mbHVzaCBxdWV1ZSIsIE1UWF9ERUYpOworCiAjZGVmaW5lCVBGX09WRVJMT0FEUV9M T0NLKCkJbXR4X2xvY2soJnBmX292ZXJsb2FkcXVldWVfbXR4KQogI2RlZmluZQlQRl9PVkVSTE9B RFFfVU5MT0NLKCkJbXR4X3VubG9jaygmcGZfb3ZlcmxvYWRxdWV1ZV9tdHgpCiAKIFZORVRfREVG SU5FKHN0cnVjdCBwZl9ydWxlcXVldWUsIHBmX3VubGlua2VkX3J1bGVzKTsKIHN0cnVjdCBtdHgg cGZfdW5sbmtkcnVsZXNfbXR4OworTVRYX1NZU0lOSVQocGZfdW5sbmtkcnVsZXNfbXR4LCAmcGZf dW5sbmtkcnVsZXNfbXR4LCAicGYgdW5saW5rZWQgcnVsZXMiLAorICAgIE1UWF9ERUYpOwogCiBz dGF0aWMgVk5FVF9ERUZJTkUodW1hX3pvbmVfdCwJcGZfc291cmNlc196KTsKICNkZWZpbmUJVl9w Zl9zb3VyY2VzX3oJVk5FVChwZl9zb3VyY2VzX3opCkBAIC03NDksNyArNzU1LDcgQEAKIAogLyog UGVyLXZuZXQgZGF0YSBzdG9yYWdlIHN0cnVjdHVyZXMgaW5pdGlhbGl6YXRpb24uICovCiB2b2lk Ci1wZl9pbml0aWFsaXplKCkKK3BmX3ZuZXRfaW5pdGlhbGl6ZSgpCiB7CiAJc3RydWN0IHBmX2tl eWhhc2gJKmtoOwogCXN0cnVjdCBwZl9pZGhhc2gJKmloOwpAQCAtODA5LDEzICs4MTUsOSBAQAog CVNUQUlMUV9JTklUKCZWX3BmX3NlbmRxdWV1ZSk7CiAJU0xJU1RfSU5JVCgmVl9wZl9vdmVybG9h ZHF1ZXVlKTsKIAlUQVNLX0lOSVQoJlZfcGZfb3ZlcmxvYWR0YXNrLCAwLCBwZl9vdmVybG9hZF90 YXNrLCBjdXJ2bmV0KTsKLQltdHhfaW5pdCgmcGZfc2VuZHF1ZXVlX210eCwgInBmIHNlbmQgcXVl dWUiLCBOVUxMLCBNVFhfREVGKTsKLQltdHhfaW5pdCgmcGZfb3ZlcmxvYWRxdWV1ZV9tdHgsICJw ZiBvdmVybG9hZC9mbHVzaCBxdWV1ZSIsIE5VTEwsCi0JICAgIE1UWF9ERUYpOwogCiAJLyogVW5s aW5rZWQsIGJ1dCBtYXkgYmUgcmVmZXJlbmNlZCBydWxlcy4gKi8KIAlUQUlMUV9JTklUKCZWX3Bm X3VubGlua2VkX3J1bGVzKTsKLQltdHhfaW5pdCgmcGZfdW5sbmtkcnVsZXNfbXR4LCAicGYgdW5s aW5rZWQgcnVsZXMiLCBOVUxMLCBNVFhfREVGKTsKIH0KIAogdm9pZApAQCAtODU4LDEwICs4NjAs NiBAQAogCQlmcmVlKHBmc2UsIE1fUEZURU1QKTsKIAl9CiAKLQltdHhfZGVzdHJveSgmcGZfc2Vu ZHF1ZXVlX210eCk7Ci0JbXR4X2Rlc3Ryb3koJnBmX292ZXJsb2FkcXVldWVfbXR4KTsKLQltdHhf ZGVzdHJveSgmcGZfdW5sbmtkcnVsZXNfbXR4KTsKLQogCXVtYV96ZGVzdHJveShWX3BmX3NvdXJj ZXNfeik7CiAJdW1hX3pkZXN0cm95KFZfcGZfc3RhdGVfeik7CiAJdW1hX3pkZXN0cm95KFZfcGZf c3RhdGVfa2V5X3opOwpAQCAtMTQ0OCw3ICsxNDQ2LDYgQEAKIAkJCVBGX1JVTEVTX1JMT0NLKCk7 CiAJCQlWX3BmX2VuZF90aHJlYWRzKys7CiAJCQlQRl9SVUxFU19SVU5MT0NLKCk7Ci0JCQl3YWtl dXAocGZfcHVyZ2VfdGhyZWFkKTsKIAkJCWtwcm9jX2V4aXQoMCk7CiAJCX0KIAkJUEZfUlVMRVNf UlVOTE9DSygpOwpkaWZmIC0tZ2l0IGEvc3lzL25ldC9wZnZhci5oIGIvc3lzL25ldC9wZnZhci5o Ci0tLSBhL3N5cy9uZXQvcGZ2YXIuaAorKysgYi9zeXMvbmV0L3BmdmFyLmgKQEAgLTE0OTQsNyAr MTQ5NCw5IEBACiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBmX3J1bGVxdWV1ZSwgcGZfdW5saW5rZWRf cnVsZXMpOwogI2RlZmluZQlWX3BmX3VubGlua2VkX3J1bGVzCVZORVQocGZfdW5saW5rZWRfcnVs ZXMpCiAKLXZvaWQJCQkJIHBmX2luaXRpYWxpemUodm9pZCk7Cit2b2lkCQkJCSBwZl9pbml0X2V2 ZW50aGFuZGxlcnModm9pZCk7Cit2b2lkCQkJCSBwZl91bmluaXRfZXZlbnRoYW5kbGVycyh2b2lk KTsKK3ZvaWQJCQkJIHBmX3ZuZXRfaW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQJCQkJIHBmX210YWdf aW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQJCQkJIHBmX210YWdfY2xlYW51cCh2b2lkKTsKIHZvaWQJ CQkJIHBmX2NsZWFudXAodm9pZCk7CkBAIC0xNTkwLDcgKzE1OTIsNyBAQAogCSAgICBzdHJ1Y3Qg cGZfYWRkciAqLCBzYV9mYW1pbHlfdCk7CiBpbnQJcGZfbWF0Y2hfcG9ydCh1X2ludDhfdCwgdV9p bnQxNl90LCB1X2ludDE2X3QsIHVfaW50MTZfdCk7CiAKLXZvaWQJcGZfbm9ybWFsaXplX2luaXQo dm9pZCk7Cit2b2lkCXBmX3ZuZXRfbm9ybWFsaXplX2luaXQodm9pZCk7CiB2b2lkCXBmX25vcm1h bGl6ZV9jbGVhbnVwKHZvaWQpOwogaW50CXBmX25vcm1hbGl6ZV90Y3AoaW50LCBzdHJ1Y3QgcGZp X2tpZiAqLCBzdHJ1Y3QgbWJ1ZiAqLCBpbnQsIGludCwgdm9pZCAqLAogCSAgICBzdHJ1Y3QgcGZf cGRlc2MgKik7CkBAIC0xNjQ4LDcgKzE2NTAsNyBAQAogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZmlf a2lmICosCQkgcGZpX2FsbCk7CiAjZGVmaW5lCVZfcGZpX2FsbAkgCQkgVk5FVChwZmlfYWxsKQog Ci12b2lkCQkgcGZpX2luaXRpYWxpemUodm9pZCk7Cit2b2lkCQkgcGZpX3ZuZXRfaW5pdGlhbGl6 ZSh2b2lkKTsKIHZvaWQJCSBwZmlfY2xlYW51cCh2b2lkKTsKIHZvaWQJCSBwZmlfa2lmX3JlZihz dHJ1Y3QgcGZpX2tpZiAqKTsKIHZvaWQJCSBwZmlfa2lmX3VucmVmKHN0cnVjdCBwZmlfa2lmICop OwoK --b1_9ba5b83b76886d7d482c70e02f5fe274--