From owner-freebsd-net@freebsd.org Sun Feb 5 16:34:20 2017 Return-Path: Delivered-To: freebsd-net@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 D7D03CD2D7F for ; Sun, 5 Feb 2017 16:34:20 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:607c::16:b]) by mx1.freebsd.org (Postfix) with ESMTP id 74A383F0 for ; Sun, 5 Feb 2017 16:34:20 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id 72941364F3; Sun, 5 Feb 2017 16:34:19 +0000 (UTC) Date: Sun, 5 Feb 2017 16:34:19 +0000 To: freebsd-net@freebsd.org From: "jhujhiti_adjectivism.org (Erick Turnquist)" Reply-to: D9451+325+eaa6f8a0c0731bfe@reviews.freebsd.org Subject: [Differential] D9451: Constrain IPv6 interface routes to each FIB Message-ID: X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , Thread-Topic: D9451: Constrain IPv6 interface routes to each FIB X-Herald-Rules: <28>, <81> X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: Precedence: bulk Thread-Index: MzA4MmVhNjA3MDYxYjk1ZGE4NzFjZWJhMzgy MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_cf53400cd4a7c8d741c0c224ba2d23ca" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.23 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Feb 2017 16:34:20 -0000 --b1_cf53400cd4a7c8d741c0c224ba2d23ca Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 amh1amhpdGlfYWRqZWN0aXZpc20ub3JnIGNyZWF0ZWQgdGhpcyByZXZpc2lvbi4Kamh1amhpdGlf YWRqZWN0aXZpc20ub3JnIGFkZGVkIHJldmlld2VyczogYXNvbWVycywgbmV0d29yay4Kamh1amhp dGlfYWRqZWN0aXZpc20ub3JnIGFkZGVkIGEgc3Vic2NyaWJlcjogZnJlZWJzZC1uZXQtbGlzdC4K amh1amhpdGlfYWRqZWN0aXZpc20ub3JnIHNldCB0aGUgcmVwb3NpdG9yeSBmb3IgdGhpcyByZXZp c2lvbiB0byByUyBGcmVlQlNEIHNyYyByZXBvc2l0b3J5LgpIZXJhbGQgYWRkZWQgc3Vic2NyaWJl cnM6IGFlLCBpbXAuCgpSRVZJU0lPTiBTVU1NQVJZCiAgSVB2NiByb3V0ZXMgaW5zdGFsbGVkIG9u IGludGVyZmFjZXMgYXJlIGN1cnJlbnRseSBpbnN0YWxsZWQgaW4gYWxsIEZJQnMsIHJlZ2FyZGxl c3Mgb2YgdGhlIHZhbHVlIG9mIG5ldC5hZGRfYWRkcl9hbGxmaWJzLiBUaGlzIGNoYW5nZSB3aWxs IGNhdXNlIHRoZSByb3V0ZXMgdG8gb25seSBiZSBpbnN0YWxsZWQgaW4gdGhlIGludGVyZmFjZSdz IEZJQiB3aGVuIHRoZSB2YWx1ZSBvZiBuZXQuYWRkX2FkZHJfYWxsZmlicyBpcyAxLgogIAogIFNl ZSBQUjE5NjM2MSAtIGh0dHBzOi8vYnVncy5mcmVlYnNkLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5j Z2k/aWQ9MTk2MzYxCgpSRVBPU0lUT1JZCiAgclMgRnJlZUJTRCBzcmMgcmVwb3NpdG9yeQoKUkVW SVNJT04gREVUQUlMCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0Q5NDUxCgpBRkZFQ1RF RCBGSUxFUwogIHN5cy9uZXQvcm91dGUuYwogIHN5cy9uZXRpbmV0Ni9pY21wNi5jCiAgc3lzL25l dGluZXQ2L2luNi5jCiAgc3lzL25ldGluZXQ2L2luNl9zcmMuYwogIHN5cy9uZXRpbmV0Ni9uZDYu YwogIHN5cy9uZXRpbmV0Ni9uZDYuaAogIHN5cy9uZXRpbmV0Ni9uZDZfbmJyLmMKICBzeXMvbmV0 aW5ldDYvbmQ2X3J0ci5jCgpFTUFJTCBQUkVGRVJFTkNFUwogIGh0dHBzOi8vcmV2aWV3cy5mcmVl YnNkLm9yZy9zZXR0aW5ncy9wYW5lbC9lbWFpbHByZWZlcmVuY2VzLwoKVG86IGpodWpoaXRpX2Fk amVjdGl2aXNtLm9yZywgYXNvbWVycywgI25ldHdvcmsKQ2M6IGltcCwgYWUsIGZyZWVic2QtbmV0 LWxpc3QK --b1_cf53400cd4a7c8d741c0c224ba2d23ca Content-Type: text/x-patch; charset=utf-8; name="D9451.24768.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D9451.24768.patch" ZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0Ni9uZDZfcnRyLmMgYi9zeXMvbmV0aW5ldDYvbmQ2X3J0 ci5jCi0tLSBhL3N5cy9uZXRpbmV0Ni9uZDZfcnRyLmMKKysrIGIvc3lzL25ldGluZXQ2L25kNl9y dHIuYwpAQCAtNTAwLDcgKzUwMCw3IEBACiAKIAllcnJvciA9IGluNl9ydHJlcXVlc3QoUlRNX0FE RCwgKHN0cnVjdCBzb2NrYWRkciAqKSZkZWYsCiAJICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikmZ2F0 ZSwgKHN0cnVjdCBzb2NrYWRkciAqKSZtYXNrLAotCSAgICBSVEZfR0FURVdBWSwgJm5ld3J0LCBS VF9ERUZBVUxUX0ZJQik7CisJICAgIFJURl9HQVRFV0FZLCAmbmV3cnQsIG5ldy0+aWZwLT5pZl9m aWIpOwogCWlmIChuZXdydCkgewogCQluZDZfcnRtc2coUlRNX0FERCwgbmV3cnQpOyAvKiB0ZWxs IHVzZXIgcHJvY2VzcyAqLwogCQlSVEZSRUUobmV3cnQpOwpAQCAtNTcxLDcgKzU3MSw3IEBACiAK IAlpbjZfcnRyZXF1ZXN0KFJUTV9ERUxFVEUsIChzdHJ1Y3Qgc29ja2FkZHIgKikmZGVmLAogCSAg ICAoc3RydWN0IHNvY2thZGRyICopJmdhdGUsCi0JICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikmbWFz aywgUlRGX0dBVEVXQVksICZvbGRydCwgUlRfREVGQVVMVF9GSUIpOworCSAgICAoc3RydWN0IHNv Y2thZGRyICopJm1hc2ssIFJURl9HQVRFV0FZLCAmb2xkcnQsIGRyLT5pZnAtPmlmX2ZpYik7CiAJ aWYgKG9sZHJ0KSB7CiAJCW5kNl9ydG1zZyhSVE1fREVMRVRFLCBvbGRydCk7CiAJCVJURlJFRShv bGRydCk7CkBAIC03MDIsNyArNzAyLDcgQEAKIAkgKiBmcm9tIHRoZSByb3V0aW5nIHRhYmxlLgog CSAqLwogCWlmIChkZWxkcikKLQkJZGVmcm91dGVyX3NlbGVjdCgpOworCQlkZWZyb3V0ZXJfc2Vs ZWN0KGRlbGRyLT5pZnAtPmlmX2ZpYik7CiAKIAkvKgogCSAqIFJlbGVhc2UgdGhlIGxpc3QgcmVm ZXJlbmNlLgpAQCAtNzMyLDcgKzczMiw3IEBACiAgKiBjb21wbGljYXRlZCBhbmQgdGhlIHBvc3Np YmlsaXR5IG9mIGludHJvZHVjaW5nIGJ1Z3MuCiAgKi8KIHZvaWQKLWRlZnJvdXRlcl9zZWxlY3Qo dm9pZCkKK2RlZnJvdXRlcl9zZWxlY3QoaW50IGZpYm51bSkKIHsKIAlzdHJ1Y3QgbmRfZGVmcm91 dGVyICpkciwgKnNlbGVjdGVkX2RyLCAqaW5zdGFsbGVkX2RyOwogCXN0cnVjdCBsbGVudHJ5ICps biA9IE5VTEw7CkBAIC03NTUsNyArNzU1LDcgQEAKIAlzZWxlY3RlZF9kciA9IGluc3RhbGxlZF9k ciA9IE5VTEw7CiAJVEFJTFFfRk9SRUFDSChkciwgJlZfbmRfZGVmcm91dGVyLCBkcl9lbnRyeSkg ewogCQlJRl9BRkRBVEFfUkxPQ0soZHItPmlmcCk7Ci0JCWlmIChzZWxlY3RlZF9kciA9PSBOVUxM ICYmCisJCWlmIChzZWxlY3RlZF9kciA9PSBOVUxMICYmIGRyLT5pZnAtPmlmX2ZpYiA9PSBmaWJu dW0gJiYKIAkJICAgIChsbiA9IG5kNl9sb29rdXAoJmRyLT5ydGFkZHIsIDAsIGRyLT5pZnApKSAm JgogCQkgICAgTkQ2X0lTX0xMSU5GT19QUk9CUkVBQ0gobG4pKSB7CiAJCQlzZWxlY3RlZF9kciA9 IGRyOwpAQCAtNzY3LDcgKzc2Nyw3IEBACiAJCQlsbiA9IE5VTEw7CiAJCX0KIAotCQlpZiAoZHIt Pmluc3RhbGxlZCkgeworCQlpZiAoZHItPmluc3RhbGxlZCAmJiBkci0+aWZwLT5pZl9maWIgPT0g ZmlibnVtKSB7CiAJCQlpZiAoaW5zdGFsbGVkX2RyID09IE5VTEwpIHsKIAkJCQlpbnN0YWxsZWRf ZHIgPSBkcjsKIAkJCQlkZWZyb3V0ZXJfcmVmKGluc3RhbGxlZF9kcik7CkBAIC03ODksMTQgKzc4 OSwyMyBAQAogCWlmIChzZWxlY3RlZF9kciA9PSBOVUxMKSB7CiAJCWlmIChpbnN0YWxsZWRfZHIg PT0gTlVMTCB8fAogCQkgICAgVEFJTFFfTkVYVChpbnN0YWxsZWRfZHIsIGRyX2VudHJ5KSA9PSBO VUxMKQotCQkJc2VsZWN0ZWRfZHIgPSBUQUlMUV9GSVJTVCgmVl9uZF9kZWZyb3V0ZXIpOworCQkJ ZHIgPSBUQUlMUV9GSVJTVCgmVl9uZF9kZWZyb3V0ZXIpOwogCQllbHNlCi0JCQlzZWxlY3RlZF9k ciA9IFRBSUxRX05FWFQoaW5zdGFsbGVkX2RyLCBkcl9lbnRyeSk7Ci0JCWRlZnJvdXRlcl9yZWYo c2VsZWN0ZWRfZHIpOworCQkJZHIgPSBUQUlMUV9ORVhUKGluc3RhbGxlZF9kciwgZHJfZW50cnkp OworCisJCS8qIEVuc3VyZSB3ZSBzZWxlY3QgYSByb3V0ZXIgZm9yIHRoaXMgRklCLiAqLworCQlU QUlMUV9GT1JFQUNIX0ZST00oZHIsICZWX25kX2RlZnJvdXRlciwgZHJfZW50cnkpIHsKKwkJCWlm IChkci0+aWZwLT5pZl9maWIgPT0gZmlibnVtKSB7CisJCQkJc2VsZWN0ZWRfZHIgPSBkcjsKKwkJ CQlkZWZyb3V0ZXJfcmVmKHNlbGVjdGVkX2RyKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQogCX0g ZWxzZSBpZiAoaW5zdGFsbGVkX2RyICE9IE5VTEwpIHsKIAkJSUZfQUZEQVRBX1JMT0NLKGluc3Rh bGxlZF9kci0+aWZwKTsKIAkJaWYgKChsbiA9IG5kNl9sb29rdXAoJmluc3RhbGxlZF9kci0+cnRh ZGRyLCAwLCBpbnN0YWxsZWRfZHItPmlmcCkpICYmCiAJCSAgICBORDZfSVNfTExJTkZPX1BST0JS RUFDSChsbikgJiYKKwkJICAgIGluc3RhbGxlZF9kci0+aWZwLT5pZl9maWIgPT0gZmlibnVtICYm CiAJCSAgICBydHByZWYoc2VsZWN0ZWRfZHIpIDw9IHJ0cHJlZihpbnN0YWxsZWRfZHIpKSB7CiAJ CQlkZWZyb3V0ZXJfcmVsZShzZWxlY3RlZF9kcik7CiAJCQlzZWxlY3RlZF9kciA9IGluc3RhbGxl ZF9kcjsKQEAgLTgwOCwxOCArODE3LDIwIEBACiAJTkQ2X1JVTkxPQ0soKTsKIAogCS8qCi0JICog SWYgdGhlIHNlbGVjdGVkIHJvdXRlciBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgaW5zdGFsbGVkIG9u ZSwKLQkgKiByZW1vdmUgdGhlIGluc3RhbGxlZCByb3V0ZXIgYW5kIGluc3RhbGwgdGhlIHNlbGVj dGVkIG9uZS4KLQkgKiBOb3RlIHRoYXQgdGhlIHNlbGVjdGVkIHJvdXRlciBpcyBuZXZlciBOVUxM IGhlcmUuCisJICogSWYgd2Ugc2VsZWN0ZWQgYSByb3V0ZXIgZm9yIHRoaXMgRklCIGFuZCBpdCdz IGRpZmZlcmVudAorCSAqIHRoYW4gdGhlIGluc3RhbGxlZCBvbmUsIHJlbW92ZSB0aGUgaW5zdGFs bGVkIHJvdXRlciBhbmQKKwkgKiBpbnN0YWxsIHRoZSBzZWxlY3RlZCBvbmUgaW4gaXRzIHBsYWNl LgogCSAqLwogCWlmIChpbnN0YWxsZWRfZHIgIT0gc2VsZWN0ZWRfZHIpIHsKIAkJaWYgKGluc3Rh bGxlZF9kciAhPSBOVUxMKSB7CiAJCQlkZWZyb3V0ZXJfZGVscmVxKGluc3RhbGxlZF9kcik7CiAJ CQlkZWZyb3V0ZXJfcmVsZShpbnN0YWxsZWRfZHIpOwogCQl9Ci0JCWRlZnJvdXRlcl9hZGRyZXEo c2VsZWN0ZWRfZHIpOworCQlpZiAoc2VsZWN0ZWRfZHIgIT0gTlVMTCkKKwkJCWRlZnJvdXRlcl9h ZGRyZXEoc2VsZWN0ZWRfZHIpOwogCX0KLQlkZWZyb3V0ZXJfcmVsZShzZWxlY3RlZF9kcik7CisJ aWYgKHNlbGVjdGVkX2RyICE9IE5VTEwpCisJCWRlZnJvdXRlcl9yZWxlKHNlbGVjdGVkX2RyKTsK IH0KIAogLyoKQEAgLTk0Miw3ICs5NTMsNyBAQAogCVZfbmQ2X2xpc3RfZ2VuaWQrKzsKIAlORDZf V1VOTE9DSygpOwogCi0JZGVmcm91dGVyX3NlbGVjdCgpOworCWRlZnJvdXRlcl9zZWxlY3QobmV3 LT5pZnAtPmlmX2ZpYik7CiAKIAlyZXR1cm4gKG4pOwogfQpAQCAtMTczMyw3ICsxNzQ0LDcgQEAK IAlzdHJ1Y3QgcnRlbnRyeSAqcnQ7CiAJc3RydWN0IHNvY2thZGRyX2luNiBtYXNrNjsKIAl1X2xv bmcgcnRmbGFnczsKLQlpbnQgZXJyb3IsIGFfZmFpbHVyZSwgZmlibnVtOworCWludCBlcnJvciwg YV9mYWlsdXJlLCBmaWJudW0sIG1heGZpYjsKIAogCS8qCiAJICogaW42X2lmaW5pdCgpIHNldHMg bmQ2X3J0cmVxdWVzdCB0byBpZmFfcnRyZXF1ZXN0IGZvciBhbGwgaWZhZGRycy4KQEAgLTE3NDQs OCArMTc1NSwxNSBAQAogCW1hc2s2LnNpbjZfYWRkciA9IHByLT5uZHByX21hc2s7CiAJcnRmbGFn cyA9IChpZmEtPmlmYV9mbGFncyAmIH5JRkFfUlRTRUxGKSB8IFJURl9VUDsKIAorCWlmKHJ0X2Fk ZF9hZGRyX2FsbGZpYnMpIHsKKwkJZmlibnVtID0gMDsKKwkJbWF4ZmliID0gcnRfbnVtZmliczsK Kwl9IGVsc2UgeworCQlmaWJudW0gPSBpZmEtPmlmYV9pZnAtPmlmX2ZpYjsKKwkJbWF4ZmliID0g ZmlibnVtICsgMTsKKwl9CiAJYV9mYWlsdXJlID0gMDsKLQlmb3IgKGZpYm51bSA9IDA7IGZpYm51 bSA8IHJ0X251bWZpYnM7IGZpYm51bSsrKSB7CisJZm9yICg7IGZpYm51bSA8IG1heGZpYjsgZmli bnVtKyspIHsKIAogCQlydCA9IE5VTEw7CiAJCWVycm9yID0gaW42X3J0cmVxdWVzdChSVE1fQURE LApAQCAtMTgzMyw2ICsxODUxLDEwIEBACiAJCWlmICgob3ByLT5uZHByX3N0YXRlZmxhZ3MgJiBO RFBSRl9PTkxJTkspID09IDApCiAJCQljb250aW51ZTsKIAorCQlpZiAoIXJ0X2FkZF9hZGRyX2Fs bGZpYnMgJiYKKwkJICAgIG9wci0+bmRwcl9pZnAtPmlmX2ZpYiAhPSBwci0+bmRwcl9pZnAtPmlm X2ZpYikKKwkJCWNvbnRpbnVlOworCiAJCWlmIChvcHItPm5kcHJfcGxlbiA9PSBwci0+bmRwcl9w bGVuICYmCiAJCSAgICBpbjZfYXJlX3ByZWZpeF9lcXVhbCgmcHItPm5kcHJfcHJlZml4LnNpbjZf YWRkciwKIAkJICAgICZvcHItPm5kcHJfcHJlZml4LnNpbjZfYWRkciwgcHItPm5kcHJfcGxlbikp IHsKQEAgLTE4OTMsNyArMTkxNSw3IEBACiAJc3RydWN0IHJ0ZW50cnkgKnJ0OwogCWNoYXIgaXA2 YnVmW0lORVQ2X0FERFJTVFJMRU5dOwogCXVpbnQ2NF90IGdlbmlkOwotCWludCBmaWJudW0sIGFf ZmFpbHVyZTsKKwlpbnQgZmlibnVtLCBtYXhmaWIsIGFfZmFpbHVyZTsKIAogCU5ENl9PTkxJTktf TE9DS19BU1NFUlQoKTsKIAlORDZfVU5MT0NLX0FTU0VSVCgpOwpAQCAtMTkxMSw4ICsxOTMzLDE2 IEBACiAJbWFzazYuc2luNl9sZW4gPSBzaXplb2Yoc2E2KTsKIAliY29weSgmcHItPm5kcHJfbWFz aywgJm1hc2s2LnNpbjZfYWRkciwgc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpOwogCisJaWYgKHJ0 X2FkZF9hZGRyX2FsbGZpYnMpIHsKKwkJZmlibnVtID0gMDsKKwkJbWF4ZmliID0gcnRfbnVtZmli czsKKwl9IGVsc2UgeworCQlmaWJudW0gPSBpZnAtPmlmX2ZpYjsKKwkJbWF4ZmliID0gZmlibnVt ICsgMTsKKwl9CisKIAlhX2ZhaWx1cmUgPSAwOwotCWZvciAoZmlibnVtID0gMDsgZmlibnVtIDwg cnRfbnVtZmliczsgZmlibnVtKyspIHsKKwlmb3IgKDsgZmlibnVtIDwgbWF4ZmliOyBmaWJudW0r KykgewogCQlydCA9IE5VTEw7CiAJCWVycm9yID0gaW42X3J0cmVxdWVzdChSVE1fREVMRVRFLCAo c3RydWN0IHNvY2thZGRyICopJnNhNiwgTlVMTCwKIAkJICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikm bWFzazYsIDAsICZydCwgZmlibnVtKTsKZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0Ni9uZDZfbmJy LmMgYi9zeXMvbmV0aW5ldDYvbmQ2X25ici5jCi0tLSBhL3N5cy9uZXRpbmV0Ni9uZDZfbmJyLmMK KysrIGIvc3lzL25ldGluZXQ2L25kNl9uYnIuYwpAQCAtMjYyLDggKzI2Miw3IEBACiAJCWJ6ZXJv KCZpbmZvLCBzaXplb2YoaW5mbykpOwogCQlpbmZvLnJ0aV9pbmZvW1JUQVhfR0FURVdBWV0gPSAo c3RydWN0IHNvY2thZGRyICopJnJ0X2dhdGV3YXk7CiAKLQkJLyogQWx3YXlzIHVzZSB0aGUgZGVm YXVsdCBGSUIuICovCi0JCWlmIChyaWJfbG9va3VwX2luZm8oUlRfREVGQVVMVF9GSUIsIChzdHJ1 Y3Qgc29ja2FkZHIgKikmZHN0NiwKKwkJaWYgKHJpYl9sb29rdXBfaW5mbyhpZnAtPmlmX2ZpYiwg KHN0cnVjdCBzb2NrYWRkciAqKSZkc3Q2LAogCQkgICAgMCwgMCwgJmluZm8pID09IDApIHsKIAkJ CWlmICgoaW5mby5ydGlfZmxhZ3MgJiBSVEZfQU5OT1VOQ0UpICE9IDAgJiYKIAkJCSAgICBydF9n YXRld2F5LnNkbF9mYW1pbHkgPT0gQUZfTElOSykgewpAQCAtNDg1LDcgKzQ4NCw3IEBACiAJCQl1 aW50MzJfdCBzY29wZWlkOwogCiAJCQlpbjZfc3BsaXRzY29wZSgmaXA2LT5pcDZfZHN0LCAmZHN0 NiwgJnNjb3BlaWQpOwotCQkJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoUlRfREVGQVVMVF9G SUIsICZkc3Q2LAorCQkJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoZmlibnVtLCAmZHN0NiwK IAkJCSAgICBzY29wZWlkLCBpZnAsICZzcmM2LCBOVUxMKTsKIAkJCWlmIChlcnJvcikgewogCQkJ CWNoYXIgaXA2YnVmW0lORVQ2X0FERFJTVFJMRU5dOwpAQCAtOTgyLDcgKzk4MSw3IEBACiAJICog U2VsZWN0IGEgc291cmNlIHdob3NlIHNjb3BlIGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlIGRl c3QuCiAJICovCiAJaW42X3NwbGl0c2NvcGUoJmRhZGRyNiwgJmRzdDYsICZzY29wZWlkKTsKLQll cnJvciA9IGluNl9zZWxlY3RzcmNfYWRkcihSVF9ERUZBVUxUX0ZJQiwgJmRzdDYsCisJZXJyb3Ig PSBpbjZfc2VsZWN0c3JjX2FkZHIoZmlibnVtLCAmZHN0NiwKIAkgICAgc2NvcGVpZCwgaWZwLCAm c3JjNiwgTlVMTCk7CiAJaWYgKGVycm9yKSB7CiAJCWNoYXIgaXA2YnVmW0lORVQ2X0FERFJTVFJM RU5dOwpkaWZmIC0tZ2l0IGEvc3lzL25ldGluZXQ2L25kNi5oIGIvc3lzL25ldGluZXQ2L25kNi5o Ci0tLSBhL3N5cy9uZXRpbmV0Ni9uZDYuaAorKysgYi9zeXMvbmV0aW5ldDYvbmQ2LmgKQEAgLTQ2 OSw3ICs0NjksNyBAQAogdm9pZCBuZDZfcnNfaW5wdXQoc3RydWN0IG1idWYgKiwgaW50LCBpbnQp Owogdm9pZCBuZDZfcmFfaW5wdXQoc3RydWN0IG1idWYgKiwgaW50LCBpbnQpOwogdm9pZCBkZWZy b3V0ZXJfcmVzZXQodm9pZCk7Ci12b2lkIGRlZnJvdXRlcl9zZWxlY3Qodm9pZCk7Cit2b2lkIGRl ZnJvdXRlcl9zZWxlY3QoaW50IGZpYm51bSk7CiB2b2lkIGRlZnJvdXRlcl9yZWYoc3RydWN0IG5k X2RlZnJvdXRlciAqKTsKIHZvaWQgZGVmcm91dGVyX3JlbGUoc3RydWN0IG5kX2RlZnJvdXRlciAq KTsKIGJvb2wgZGVmcm91dGVyX3JlbW92ZShzdHJ1Y3QgaW42X2FkZHIgKiwgc3RydWN0IGlmbmV0 ICopOwpkaWZmIC0tZ2l0IGEvc3lzL25ldGluZXQ2L25kNi5jIGIvc3lzL25ldGluZXQ2L25kNi5j Ci0tLSBhL3N5cy9uZXRpbmV0Ni9uZDYuYworKysgYi9zeXMvbmV0aW5ldDYvbmQ2LmMKQEAgLTE1 Nyw2ICsxNTcsNyBAQAogCXN0cnVjdCBzb2NrYWRkcl9kbCBndzsKIAlzdHJ1Y3QgaWZuZXQgKmlm cDsKIAlpbnQgdHlwZTsKKwlpbnQgZmlibnVtOwogCiAJTExFX1dMT0NLX0FTU0VSVChsbGUpOwog CkBAIC0xOTQsOCArMTk1LDkgQEAKIAlydGluZm8ucnRpX2luZm9bUlRBWF9EU1RdID0gKHN0cnVj dCBzb2NrYWRkciAqKSZkc3Q7CiAJcnRpbmZvLnJ0aV9pbmZvW1JUQVhfR0FURVdBWV0gPSAoc3Ry dWN0IHNvY2thZGRyICopJmd3OwogCXJ0aW5mby5ydGlfYWRkcnMgPSBSVEFfRFNUIHwgUlRBX0dB VEVXQVk7CisJZmlibnVtID0gcnRfYWRkX2FkZHJfYWxsZmlicyA/IFJUX0FMTF9GSUJTIDogaWZw LT5pZl9maWI7CiAJcnRfbWlzc21zZ19maWIodHlwZSwgJnJ0aW5mbywgUlRGX0hPU1QgfCBSVEZf TExEQVRBIHwgKAotCSAgICB0eXBlID09IFJUTV9BREQgPyBSVEZfVVA6IDApLCAwLCBSVF9ERUZB VUxUX0ZJQik7CisJICAgIHR5cGUgPT0gUlRNX0FERCA/IFJURl9VUDogMCksIDAsIGZpYm51bSk7 CiB9CiAKIC8qCkBAIC0xMjA0LDcgKzEyMDYsNyBAQAogCiAJaWYgKE5EX0lGSU5GTyhpZnApLT5m bGFncyAmIE5ENl9JRkZfQUNDRVBUX1JUQURWKSB7CiAJCS8qIFJlZnJlc2ggZGVmYXVsdCByb3V0 ZXIgbGlzdC4gKi8KLQkJZGVmcm91dGVyX3NlbGVjdCgpOworCQlkZWZyb3V0ZXJfc2VsZWN0KGlm cC0+aWZfZmliKTsKIAl9CiB9CiAKQEAgLTEyOTAsOSArMTI5Miw3IEBACiAJYnplcm8oJnJ0X2tl eSwgc2l6ZW9mKHJ0X2tleSkpOwogCWJ6ZXJvKCZpbmZvLCBzaXplb2YoaW5mbykpOwogCWluZm8u cnRpX2luZm9bUlRBWF9EU1RdID0gKHN0cnVjdCBzb2NrYWRkciAqKSZydF9rZXk7Ci0KLQkvKiBB bHdheXMgdXNlIHRoZSBkZWZhdWx0IEZJQiBoZXJlLiBYWE1FIC0gd2h5PyAqLwotCWZpYm51bSA9 IFJUX0RFRkFVTFRfRklCOworCWZpYm51bSA9IGlmcC0+aWZfZmliOwogCiAJLyoKIAkgKiBJZiB0 aGUgYWRkcmVzcyBtYXRjaGVzIG9uZSBvZiBvdXIgYWRkcmVzc2VzLApAQCAtMTUxNCw3ICsxNTE0 LDcgQEAKIAkJCS8qCiAJCQkgKiBSZWZyZXNoIGRlZmF1bHQgcm91dGVyIGxpc3QuCiAJCQkgKi8K LQkJCWRlZnJvdXRlcl9zZWxlY3QoKTsKKwkJCWRlZnJvdXRlcl9zZWxlY3QoZHItPmlmcC0+aWZf ZmliKTsKIAkJfQogCiAJCS8qCkBAIC0xNzcwLDcgKzE3NzAsOCBAQAogCWNhc2UgU0lPQ1NOREZM VVNIX0lONjoJLyogWFhYOiB0aGUgaW9jdGwgbmFtZSBpcyBjb25mdXNpbmcuLi4gKi8KIAkJLyog c3luYyBrZXJuZWwgcm91dGluZyB0YWJsZSB3aXRoIHRoZSBkZWZhdWx0IHJvdXRlciBsaXN0ICov CiAJCWRlZnJvdXRlcl9yZXNldCgpOwotCQlkZWZyb3V0ZXJfc2VsZWN0KCk7CisJCWZvciAoaW50 IGZpYm51bSA9IDA7IGZpYm51bSA8IHJ0X251bWZpYnM7IGZpYm51bSsrKQorCQkJZGVmcm91dGVy X3NlbGVjdChmaWJudW0pOwogCQlicmVhazsKIAljYXNlIFNJT0NTUEZYRkxVU0hfSU42OgogCXsK QEAgLTE4MjMsNyArMTgyNCw4IEBACiAJCQlkZWZyb3V0ZXJfZGVsKGRyKTsKIAkJfQogCi0JCWRl ZnJvdXRlcl9zZWxlY3QoKTsKKwkJZm9yIChpbnQgZmlibnVtID0gMDsgZmlibnVtIDwgcnRfbnVt ZmliczsgZmlibnVtKyspCisJCQlkZWZyb3V0ZXJfc2VsZWN0KGZpYm51bSk7CiAJCWJyZWFrOwog CX0KIAljYXNlIFNJT0NHTkJSSU5GT19JTjY6CkBAIC0yMTIxLDcgKzIxMjMsNyBAQAogCQkvKgog CQkgKiBndWFyYW50ZWVkIHJlY3Vyc2lvbgogCQkgKi8KLQkJZGVmcm91dGVyX3NlbGVjdCgpOwor CQlkZWZyb3V0ZXJfc2VsZWN0KGlmcC0+aWZfZmliKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3N5 cy9uZXRpbmV0Ni9pbjZfc3JjLmMgYi9zeXMvbmV0aW5ldDYvaW42X3NyYy5jCi0tLSBhL3N5cy9u ZXRpbmV0Ni9pbjZfc3JjLmMKKysrIGIvc3lzL25ldGluZXQ2L2luNl9zcmMuYwpAQCAtMjk3LDcg KzI5Nyw3IEBACiAJICovCiAJLyogZ2V0IHRoZSBvdXRnb2luZyBpbnRlcmZhY2UgKi8KIAlpZiAo KGVycm9yID0gaW42X3NlbGVjdGlmKGRzdHNvY2ssIG9wdHMsIG1vcHRzLCAmaWZwLCBvaWZwLAot CSAgICAoaW5wICE9IE5VTEwpID8gaW5wLT5pbnBfaW5jLmluY19maWJudW0gOiBSVF9ERUZBVUxU X0ZJQikpICE9IDApCisJICAgIChpbnAgIT0gTlVMTCkgPyBpbnAtPmlucF9pbmMuaW5jX2ZpYm51 bSA6IGZpYm51bSkpICE9IDApCiAJCXJldHVybiAoZXJyb3IpOwogCiAjaWZkZWYgRElBR05PU1RJ QwpkaWZmIC0tZ2l0IGEvc3lzL25ldGluZXQ2L2luNi5jIGIvc3lzL25ldGluZXQ2L2luNi5jCi0t LSBhL3N5cy9uZXRpbmV0Ni9pbjYuYworKysgYi9zeXMvbmV0aW5ldDYvaW42LmMKQEAgLTE1OSw2 ICsxNTksNyBAQAogCXN0cnVjdCBzb2NrYWRkcl9kbCBnYXRld2F5OwogCXN0cnVjdCBzb2NrYWRk cl9pbjYgbWFzaywgYWRkcjsKIAlzdHJ1Y3QgcnRlbnRyeSBydDsKKwlpbnQgZmlibnVtOwogCiAJ LyoKIAkgKiBpbml0aWFsaXplIGZvciBydG1zZyBnZW5lcmF0aW9uCkBAIC0xNzYsOCArMTc3LDkg QEAKIAlydC5ydF9mbGFncyA9IFJURl9IT1NUIHwgUlRGX1NUQVRJQzsKIAlpZiAoY21kID09IFJU TV9BREQpCiAJCXJ0LnJ0X2ZsYWdzIHw9IFJURl9VUDsKLQkvKiBBbm5vdW5jZSBhcnJpdmFsIG9m IGxvY2FsIGFkZHJlc3MgdG8gYWxsIEZJQnMuICovCi0JcnRfbmV3YWRkcm1zZyhjbWQsICZpYS0+ aWFfaWZhLCAwLCAmcnQpOworCWZpYm51bSA9IHJ0X2FkZF9hZGRyX2FsbGZpYnMgPyBSVF9BTExf RklCUyA6IGlhNjJpZmEoaWEpLT5pZmFfaWZwLT5pZl9maWI7CisJLyogQW5ub3VuY2UgYXJyaXZh bCBvZiBsb2NhbCBhZGRyZXNzIHRvIHRoaXMgRklCLiAqLworCXJ0X25ld2FkZHJtc2dfZmliKGNt ZCwgJmlhLT5pYV9pZmEsIDAsICZydCwgZmlibnVtKTsKIH0KIAogaW50CkBAIC0yMTE1LDE1ICsy MTE3LDE1IEBACiAJdWludDMyX3Qgc2NvcGVpZDsKIAlpbnQgZXJyb3I7CiAJY2hhciBpcDZidWZb SU5FVDZfQUREUlNUUkxFTl07CisJaW50IGZpYm51bTsKIAogCUtBU1NFUlQobDNhZGRyLT5zYV9m YW1pbHkgPT0gQUZfSU5FVDYsCiAJICAgICgic2luX2ZhbWlseSAlZCIsIGwzYWRkci0+c2FfZmFt aWx5KSk7CiAKLQkvKiBPdXIgbG9jYWwgYWRkcmVzc2VzIGFyZSBhbHdheXMgb25seSBpbnN0YWxs ZWQgb24gdGhlIGRlZmF1bHQgRklCLiAqLwotCiAJc2luNiA9IChjb25zdCBzdHJ1Y3Qgc29ja2Fk ZHJfaW42ICopbDNhZGRyOwogCWluNl9zcGxpdHNjb3BlKCZzaW42LT5zaW42X2FkZHIsICZkc3Qs ICZzY29wZWlkKTsKLQllcnJvciA9IGZpYjZfbG9va3VwX25oX2Jhc2ljKFJUX0RFRkFVTFRfRklC LCAmZHN0LCBzY29wZWlkLCAwLCAwLCAmbmg2KTsKKwlmaWJudW0gPSBydF9hZGRfYWRkcl9hbGxm aWJzID8gUlRfREVGQVVMVF9GSUIgOiBpZnAtPmlmX2ZpYjsKKwllcnJvciA9IGZpYjZfbG9va3Vw X25oX2Jhc2ljKGZpYm51bSwgJmRzdCwgc2NvcGVpZCwgMCwgMCwgJm5oNik7CiAJaWYgKGVycm9y ICE9IDAgfHwgKG5oNi5uaF9mbGFncyAmIE5IRl9HQVRFV0FZKSB8fCBuaDYubmhfaWZwICE9IGlm cCkgewogCQlzdHJ1Y3QgaWZhZGRyICppZmE7CiAJCS8qCmRpZmYgLS1naXQgYS9zeXMvbmV0aW5l dDYvaWNtcDYuYyBiL3N5cy9uZXRpbmV0Ni9pY21wNi5jCi0tLSBhL3N5cy9uZXRpbmV0Ni9pY21w Ni5jCisrKyBiL3N5cy9uZXRpbmV0Ni9pY21wNi5jCkBAIC0yMDY0LDYgKzIwNjQsNyBAQAogCXN0 cnVjdCBpZm5ldCAqb3V0aWYgPSBOVUxMOwogCWludCBwbGVuOwogCWludCB0eXBlLCBjb2RlLCBo bGltOworCWludCBmaWJudW07CiAKIAkvKiB0b28gc2hvcnQgdG8gcmVmbGVjdCAqLwogCWlmIChv ZmYgPCBzaXplb2Yoc3RydWN0IGlwNl9oZHIpKSB7CkBAIC0yMTM2LDYgKzIxMzcsMTQgQEAKIAkJ CWlmYV9mcmVlKCZpYS0+aWFfaWZhKTsKIAl9CiAKKwlpYSA9IGluNmlmYV9pZndpdGhhZGRyKCZp cDYtPmlwNl9kc3QsIDAgLyogWFhYICovKTsKKwlpZiAoaWEgIT0gTlVMTCkgeworCQlmaWJudW0g PSBpYS0+aWFfaWZwLT5pZl9maWI7CisJCWlmYV9mcmVlKCZpYS0+aWFfaWZhKTsKKwl9IGVsc2UK KwkJZmlibnVtID0gUlRfREVGQVVMVF9GSUI7CisJTV9TRVRGSUIobSwgZmlibnVtKTsKKwogCWlm IChzcmNwID09IE5VTEwpIHsKIAkJaW50IGVycm9yOwogCQlzdHJ1Y3QgaW42X2FkZHIgZHN0NjsK QEAgLTIxNDcsNyArMjE1Niw3IEBACiAJCSAqIHNvdXJjZSBhZGRyZXNzIG9mIHRoZSBlcnJvbmVv dXMgcGFja2V0LgogCQkgKi8KIAkJaW42X3NwbGl0c2NvcGUoJmlwNi0+aXA2X3NyYywgJmRzdDYs ICZzY29wZWlkKTsKLQkJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoUlRfREVGQVVMVF9GSUIs ICZkc3Q2LAorCQllcnJvciA9IGluNl9zZWxlY3RzcmNfYWRkcihmaWJudW0sICZkc3Q2LAogCQkg ICAgc2NvcGVpZCwgTlVMTCwgJnNyYzYsICZobGltKTsKIAogCQlpZiAoZXJyb3IpIHsKQEAgLTIy ODksNyArMjI5OCw3IEBACiAJdWludDMyX3Qgc2NvcGVpZDsKIAogCWluNl9zcGxpdHNjb3BlKCZy ZWRkc3Q2LCAma2RzdCwgJnNjb3BlaWQpOwotCWlmIChmaWI2X2xvb2t1cF9uaF9iYXNpYyhSVF9E RUZBVUxUX0ZJQiwgJmtkc3QsIHNjb3BlaWQsIDAsIDAsJm5oNik9PTApeworCWlmIChmaWI2X2xv b2t1cF9uaF9iYXNpYyhpZnAtPmlmX2ZpYiwgJmtkc3QsIHNjb3BlaWQsIDAsIDAsJm5oNik9PTAp ewogCQlpZiAoKG5oNi5uaF9mbGFncyAmIE5IRl9HQVRFV0FZKSA9PSAwKSB7CiAJCQluZDZsb2co KExPR19FUlIsCiAJCQkgICAgIklDTVA2IHJlZGlyZWN0IHJlamVjdGVkOyBubyByb3V0ZSAiCmRp ZmYgLS1naXQgYS9zeXMvbmV0L3JvdXRlLmMgYi9zeXMvbmV0L3JvdXRlLmMKLS0tIGEvc3lzL25l dC9yb3V0ZS5jCisrKyBiL3N5cy9uZXQvcm91dGUuYwpAQCAtMjIyMSw3ICsyMjIxLDcgQEAKIAlj YXNlIEFGX0lORVQ2OgogCWNhc2UgQUZfSU5FVDoKIAkJLyogV2UgZG8gc3VwcG9ydCBtdWx0aXBs ZSBGSUJzLiAqLwotCQlmaWIgPSBSVF9BTExfRklCUzsKKwkJZmliID0gcnRfYWRkX2FkZHJfYWxs ZmlicyA/IFJUX0FMTF9GSUJTIDogaWZhLT5pZmFfaWZwLT5pZl9maWI7CiAJCWJyZWFrOwogCX0K IAlyZXR1cm4gKHJ0aW5pdDEoaWZhLCBjbWQsIGZsYWdzLCBmaWIpKTsKCg== --b1_cf53400cd4a7c8d741c0c224ba2d23ca--