Date: Thu, 26 Aug 2010 21:03:37 +0200 (CEST) From: Ingo Flaschberger <if@xip.at> To: "Li, Qing" <qing.li@bluecoat.com> Cc: Qing Li <qingli@freebsd.org>, net@freebsd.org Subject: RE: funny ECMP Message-ID: <alpine.LFD.2.00.1008262102150.15491@filebunker.xip.at> In-Reply-To: <alpine.LFD.2.00.1008261754140.15491@filebunker.xip.at> References: <alpine.LFD.2.00.1008230154280.29368@filebunker.xip.at> <alpine.LFD.2.00.1008240144350.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F1FC70@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008240223240.12708@filebunker.xip.at> <alpine.LFD.2.00.1008242005160.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F1FF22@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008242027390.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F1FF79@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008242102410.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F20002@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008242227350.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F20038@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008261754140.15491@filebunker.xip.at>
next in thread | previous in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --168430090-1915796902-1282849418=:15491 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Hi again, had a very small typo (copy&paste and compare..) attached new version of patch; now everything works and error disappeared. Kind regards, Ingo Flaschberger --168430090-1915796902-1282849418=:15491 Content-Type: TEXT/plain; name=mpath_patch_if_v2.txt Content-Transfer-Encoding: BASE64 Content-ID: <alpine.LFD.2.00.1008262103370.15491@filebunker.xip.at> Content-Description: Content-Disposition: attachment; filename=mpath_patch_if_v2.txt ZGlmZiAtciAtdSAvdXNyL3NyYy9zeXMvY29udHJpYi9pcGZpbHRlci9uZXRp bmV0L2lwX3Bvb2wuYyAvcm91dGVyL3Vzci9zcmMvc3lzL2NvbnRyaWIvaXBm aWx0ZXIvbmV0aW5ldC9pcF9wb29sLmMNCi0tLSAvdXNyL3NyYy9zeXMvY29u dHJpYi9pcGZpbHRlci9uZXRpbmV0L2lwX3Bvb2wuYwkyMDA3LTEwLTE4IDIx OjQyOjM4LjAwMDAwMDAwMCArMDAwMA0KKysrIC9yb3V0ZXIvdXNyL3NyYy9z eXMvY29udHJpYi9pcGZpbHRlci9uZXRpbmV0L2lwX3Bvb2wuYwkyMDEwLTA4 LTI2IDExOjUyOjIxLjAwMDAwMDAwMCArMDAwMA0KQEAgLTYyMCw3ICs2MjAs NyBAQA0KIA0KIAlSQURJWF9OT0RFX0hFQURfTE9DSyhpcG8tPmlwb19oZWFk KTsNCiAJaXBvLT5pcG9faGVhZC0+cm5oX2RlbGFkZHIoJmlwZS0+aXBuX2Fk ZHIsICZpcGUtPmlwbl9tYXNrLA0KLQkJCQkgICBpcG8tPmlwb19oZWFkKTsN CisJCQkJICAgaXBvLT5pcG9faGVhZCwgTlVMTCk7DQogCVJBRElYX05PREVf SEVBRF9VTkxPQ0soaXBvLT5pcG9faGVhZCk7DQogDQogCWlwX3Bvb2xfbm9k ZV9kZXJlZihpcGUpOw0KQEAgLTc1MSw3ICs3NTEsNyBAQA0KIAlSQURJWF9O T0RFX0hFQURfTE9DSyhpcG8tPmlwb19oZWFkKTsNCiAJd2hpbGUgKChuID0g aXBvLT5pcG9fbGlzdCkgIT0gTlVMTCkgew0KIAkJaXBvLT5pcG9faGVhZC0+ cm5oX2RlbGFkZHIoJm4tPmlwbl9hZGRyLCAmbi0+aXBuX21hc2ssDQotCQkJ CQkgICBpcG8tPmlwb19oZWFkKTsNCisJCQkJCSAgIGlwby0+aXBvX2hlYWQs IE5VTEwpOw0KIA0KIAkJKm4tPmlwbl9wbmV4dCA9IG4tPmlwbl9uZXh0Ow0K IAkJaWYgKG4tPmlwbl9uZXh0KQ0KQEAgLTk2Myw3ICs5NjMsNyBAQA0KIAlz dHJ1Y3QgcmFkaXhfbm9kZV9oZWFkICpybmggPSBwOw0KIAlzdHJ1Y3QgcmFk aXhfbm9kZSAqZDsNCiANCi0JZCA9IHJuaC0+cm5oX2RlbGFkZHIobi0+cm5f a2V5LCBOVUxMLCBybmgpOw0KKwlkID0gcm5oLT5ybmhfZGVsYWRkcihuLT5y bl9rZXksIE5VTEwsIHJuaCwgTlVMTCk7DQogCWlmIChkICE9IE5VTEwpIHsN CiAJCUZyZWVTKGQsIG1heF9rZXlsZW4gKyAyICogc2l6ZW9mICgqZCkpOw0K IAl9DQpkaWZmIC1yIC11IC91c3Ivc3JjL3N5cy9jb250cmliL3BmL25ldC9w Zi5jIC9yb3V0ZXIvdXNyL3NyYy9zeXMvY29udHJpYi9wZi9uZXQvcGYuYw0K LS0tIC91c3Ivc3JjL3N5cy9jb250cmliL3BmL25ldC9wZi5jCTIwMTAtMDEt MjMgMDA6MzI6MTkuMDAwMDAwMDAwICswMDAwDQorKysgL3JvdXRlci91c3Iv c3JjL3N5cy9jb250cmliL3BmL25ldC9wZi5jCTIwMTAtMDgtMjYgMTU6MTI6 MTIuMDAwMDAwMDAwICswMDAwDQpAQCAtOTksOSArOTksNyBAQA0KICNpbmNs dWRlIDxuZXQvaWZfdHlwZXMuaD4NCiAjaW5jbHVkZSA8bmV0L2JwZi5oPg0K ICNpbmNsdWRlIDxuZXQvcm91dGUuaD4NCi0jaWZuZGVmIF9fRnJlZUJTRF9f DQogI2luY2x1ZGUgPG5ldC9yYWRpeF9tcGF0aC5oPg0KLSNlbmRpZg0KIA0K ICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+DQogI2luY2x1ZGUgPG5ldGluZXQv aW5fdmFyLmg+DQpAQCAtNjE2Niw5ICs2MTY0LDkgQEANCiAJCQlpZiAoa2lm LT5wZmlrX2lmcCA9PSBpZnApDQogCQkJCXJldCA9IDE7DQogI2lmZGVmIF9f RnJlZUJTRF9fIC8qIE1VTFRJUEFUSF9ST1VUSU5HICovDQotCQkJcm4gPSBO VUxMOw0KKwkJCXJuID0gcm5fbXBhdGhfbmV4dChybik7IC8qIFhYWCB3YXMg YmVmb3JlOiBybiA9IE5VTEw7ICovDQogI2Vsc2UNCi0JCQlybiA9IHJuX21w YXRoX25leHQocm4pOw0KKwkJCXJuID0gcm5fbXBhdGhfbmV4dChybiwgMCk7 DQogI2VuZGlmDQogCQl9IHdoaWxlIChjaGVja19tcGF0aCA9PSAxICYmIHJu ICE9IE5VTEwgJiYgcmV0ID09IDApOw0KIAl9IGVsc2UNCmRpZmYgLXIgLXUg L3Vzci9zcmMvc3lzL2NvbnRyaWIvcGYvbmV0L3BmX3RhYmxlLmMgL3JvdXRl ci91c3Ivc3JjL3N5cy9jb250cmliL3BmL25ldC9wZl90YWJsZS5jDQotLS0g L3Vzci9zcmMvc3lzL2NvbnRyaWIvcGYvbmV0L3BmX3RhYmxlLmMJMjAwOS0w OC0wMyAwODoxMzowNi4wMDAwMDAwMDAgKzAwMDANCisrKyAvcm91dGVyL3Vz ci9zcmMvc3lzL2NvbnRyaWIvcGYvbmV0L3BmX3RhYmxlLmMJMjAxMC0wOC0y NiAxMTo1MDozMS4wMDAwMDAwMDAgKzAwMDANCkBAIC0xMTE0LDE3ICsxMTE0 LDkgQEANCiAjZW5kaWYNCiAJaWYgKEtFTlRSWV9ORVRXT1JLKGtlKSkgew0K IAkJcGZyX3ByZXBhcmVfbmV0d29yaygmbWFzaywga2UtPnBmcmtlX2FmLCBr ZS0+cGZya2VfbmV0KTsNCi0jaWZkZWYgX19GcmVlQlNEX18NCi0JCXJuID0g cm5fZGVsZXRlKCZrZS0+cGZya2Vfc2EsICZtYXNrLCBoZWFkKTsNCi0jZWxz ZQ0KIAkJcm4gPSBybl9kZWxldGUoJmtlLT5wZnJrZV9zYSwgJm1hc2ssIGhl YWQsIE5VTEwpOw0KLSNlbmRpZg0KIAl9IGVsc2UNCi0jaWZkZWYgX19GcmVl QlNEX18NCi0JCXJuID0gcm5fZGVsZXRlKCZrZS0+cGZya2Vfc2EsIE5VTEws IGhlYWQpOw0KLSNlbHNlDQogCQlybiA9IHJuX2RlbGV0ZSgma2UtPnBmcmtl X3NhLCBOVUxMLCBoZWFkLCBOVUxMKTsNCi0jZW5kaWYNCiAJc3BseChzKTsN CiANCiAJaWYgKHJuID09IE5VTEwpIHsNCmRpZmYgLXIgLXUgL3Vzci9zcmMv c3lzL2tlcm4vdmZzX2V4cG9ydC5jIC9yb3V0ZXIvdXNyL3NyYy9zeXMva2Vy bi92ZnNfZXhwb3J0LmMNCi0tLSAvdXNyL3NyYy9zeXMva2Vybi92ZnNfZXhw b3J0LmMJMjAwOS0xMC0wMSAxMzoxMTo0NS4wMDAwMDAwMDAgKzAwMDANCisr KyAvcm91dGVyL3Vzci9zcmMvc3lzL2tlcm4vdmZzX2V4cG9ydC5jCTIwMTAt MDgtMjYgMTE6NTI6NDcuMDAwMDAwMDAwICswMDAwDQpAQCAtMjI4LDcgKzIy OCw3IEBADQogCXN0cnVjdCByYWRpeF9ub2RlX2hlYWQgKnJuaCA9IChzdHJ1 Y3QgcmFkaXhfbm9kZV9oZWFkICopIHc7DQogCXN0cnVjdCB1Y3JlZCAqY3Jl ZDsNCiANCi0JKCpybmgtPnJuaF9kZWxhZGRyKSAocm4tPnJuX2tleSwgcm4t PnJuX21hc2ssIHJuaCk7DQorCSgqcm5oLT5ybmhfZGVsYWRkcikgKHJuLT5y bl9rZXksIHJuLT5ybl9tYXNrLCBybmgsIE5VTEwpOw0KIAljcmVkID0gKChz dHJ1Y3QgbmV0Y3JlZCAqKXJuKS0+bmV0Y19hbm9uOw0KIAlpZiAoY3JlZCAh PSBOVUxMKQ0KIAkJY3JmcmVlKGNyZWQpOw0KZGlmZiAtciAtdSAvdXNyL3Ny Yy9zeXMvbmV0L3JhZGl4LmMgL3JvdXRlci91c3Ivc3JjL3N5cy9uZXQvcmFk aXguYw0KLS0tIC91c3Ivc3JjL3N5cy9uZXQvcmFkaXguYwkyMDEwLTA0LTAy IDA1OjAyOjUwLjAwMDAwMDAwMCArMDAwMA0KKysrIC9yb3V0ZXIvdXNyL3Ny Yy9zeXMvbmV0L3JhZGl4LmMJMjAxMC0wOC0yNiAxODoxNDoyNi4wMDAwMDAw MDAgKzAwMDANCkBAIC02MTQsNyArNjE0LDcgQEANCiAJc3RydWN0IHJhZGl4 X25vZGUgdHJlZW5vZGVzWzJdOw0KIHsNCiAJY2FkZHJfdCB2ID0gKGNhZGRy X3Qpdl9hcmcsIG5ldG1hc2sgPSAoY2FkZHJfdCluX2FyZzsNCi0JcmVnaXN0 ZXIgc3RydWN0IHJhZGl4X25vZGUgKnQsICp4ID0gMCwgKnR0Ow0KKwlyZWdp c3RlciBzdHJ1Y3QgcmFkaXhfbm9kZSAqdCwgKnggPSAwLCAqeHggPSAwLCAq dHQ7DQogCXN0cnVjdCByYWRpeF9ub2RlICpzYXZlZF90dCwgKnRvcCA9IGhl YWQtPnJuaF90cmVldG9wOw0KIAlzaG9ydCBiID0gMCwgYl9sZWFmID0gMDsN CiAJaW50IGtleWR1cGxpY2F0ZWQ7DQpAQCAtNzIzLDEyICs3MjMsMTkgQEAN CiAJCXggPSB0LT5ybl9yaWdodDsNCiAJLyogUHJvbW90ZSBnZW5lcmFsIHJv dXRlcyBmcm9tIGJlbG93ICovDQogCWlmICh4LT5ybl9iaXQgPCAwKSB7DQot CSAgICBmb3IgKG1wID0gJnQtPnJuX21rbGlzdDsgeDsgeCA9IHgtPnJuX2R1 cGVka2V5KQ0KKwkgICAgZm9yIChtcCA9ICZ0LT5ybl9ta2xpc3Q7IHg7IHh4 ID0geCwgeCA9IHgtPnJuX2R1cGVka2V5KSB7DQorCQlpZiAoeHggJiYgeHgt PnJuX21rbGlzdCAmJiB4eC0+cm5fbWFzayA9PSB4LT5ybl9tYXNrICYmDQor CQkJCXgtPnJuX21rbGlzdCA9PSAwKSB7DQorCQkJLyogbXVsdGlwYXRoIHJv dXRlLCBidW1wIHJlZmNvdW50IG9uIGZpcnN0IG1rbGlzdCAqLw0KKwkJCXgt PnJuX21rbGlzdCA9IHh4LT5ybl9ta2xpc3Q7DQorCQkJeC0+cm5fbWtsaXN0 LT5ybV9yZWZzKys7DQorCQl9DQogCQlpZiAoeC0+cm5fbWFzayAmJiAoeC0+ cm5fYml0ID49IGJfbGVhZikgJiYgeC0+cm5fbWtsaXN0ID09IDApIHsNCiAJ CQkqbXAgPSBtID0gcm5fbmV3X3JhZGl4X21hc2soeCwgMCk7DQogCQkJaWYg KG0pDQogCQkJCW1wID0gJm0tPnJtX21rbGlzdDsNCiAJCX0NCisJICAgIH0N CiAJfSBlbHNlIGlmICh4LT5ybl9ta2xpc3QpIHsNCiAJCS8qDQogCQkgKiBT a2lwIG92ZXIgbWFza3Mgd2hvc2UgaW5kZXggaXMgPiB0aGF0IG9mIG5ldyBu b2RlDQpAQCAtNzgzLDkgKzc5MCwxMCBAQA0KIH0NCiANCiBzdHJ1Y3QgcmFk aXhfbm9kZSAqDQotcm5fZGVsZXRlKHZfYXJnLCBuZXRtYXNrX2FyZywgaGVh ZCkNCitybl9kZWxldGUodl9hcmcsIG5ldG1hc2tfYXJnLCBoZWFkLCBybikN CiAJdm9pZCAqdl9hcmcsICpuZXRtYXNrX2FyZzsNCiAJc3RydWN0IHJhZGl4 X25vZGVfaGVhZCAqaGVhZDsNCisJc3RydWN0IHJhZGl4X25vZGUgKnJuOw0K IHsNCiAJcmVnaXN0ZXIgc3RydWN0IHJhZGl4X25vZGUgKnQsICpwLCAqeCwg KnR0Ow0KIAlzdHJ1Y3QgcmFkaXhfbWFzayAqbSwgKnNhdmVkX20sICoqbXA7 DQpAQCAtODE1LDEzICs4MjMsMzggQEANCiAJCQlpZiAoKHR0ID0gdHQtPnJu X2R1cGVka2V5KSA9PSAwKQ0KIAkJCQlyZXR1cm4gKDApOw0KIAl9DQorI2lm ZGVmIFJBRElYX01QQVRIDQorCWlmIChybikgew0KKwkJd2hpbGUgKHR0ICE9 IHJuKQ0KKwkJCWlmICgodHQgPSB0dC0+cm5fZHVwZWRrZXkpID09IDApDQor CQkJCXJldHVybiAoMCk7DQorCX0NCisjZW5kaWYNCisJDQogCWlmICh0dC0+ cm5fbWFzayA9PSAwIHx8IChzYXZlZF9tID0gbSA9IHR0LT5ybl9ta2xpc3Qp ID09IDApDQogCQlnb3RvIG9uMTsNCiAJaWYgKHR0LT5ybl9mbGFncyAmIFJO Rl9OT1JNQUwpIHsNCi0JCWlmIChtLT5ybV9sZWFmICE9IHR0IHx8IG0tPnJt X3JlZnMgPiAwKSB7DQorCQlpZiAobS0+cm1fbGVhZiAhPSB0dCAmJiBtLT5y bV9yZWZzID09IDApIHsNCiAJCQlsb2coTE9HX0VSUiwgInJuX2RlbGV0ZTog aW5jb25zaXN0ZW50IGFubm90YXRpb25cbiIpOw0KIAkJCXJldHVybiAwOyAg LyogZGFuZ2xpbmcgcmVmIGNvdWxkIGNhdXNlIGRpc2FzdGVyICovDQogCQl9 DQorCQlpZiAobS0+cm1fbGVhZiAhPSB0dCkgew0KKwkJCWlmICgtLW0tPnJt X3JlZnMgPj0gMCkNCisJCQkJZ290byBvbjE7DQorICAgICAgICAgICAgICAg IH0NCisJCS8qIHR0IGlzIGN1cnJlbnRseSB0aGUgaGVhZCBvZiB0aGUgcG9z c2libGUgbXVsdGlwYXRoIGNoYWluICovDQorCQlpZiAobS0+cm1fcmVmcyA+ IDApIHsNCisJCQlpZiAodHQtPnJuX2R1cGVka2V5ID09IE5VTEwgfHwNCisJ CQkgICAgdHQtPnJuX2R1cGVka2V5LT5ybl9ta2xpc3QgIT0gbSkgew0KKwkJ CQlsb2coTE9HX0VSUiwgInJuX2RlbGV0ZTogaW5jb25zaXN0ZW50ICINCisJ CQkJICAgICJkdXBlZGtleSBsaXN0XG4iKTsNCisJCQkJcmV0dXJuICgwKTsN CisJCQl9DQorCQkJbS0+cm1fbGVhZiA9IHR0LT5ybl9kdXBlZGtleTsNCisJ CQktLW0tPnJtX3JlZnM7DQorCQkJZ290byBvbjE7DQorCQl9DQorCQkvKiBl bHNlIHR0IGlzIGxhc3QgYW5kIG9ubHkgcm91dGUgKi8NCiAJfSBlbHNlIHsN CiAJCWlmIChtLT5ybV9tYXNrICE9IHR0LT5ybl9tYXNrKSB7DQogCQkJbG9n KExPR19FUlIsICJybl9kZWxldGU6IGluY29uc2lzdGVudCBhbm5vdGF0aW9u XG4iKTsNCkBAIC04NjksMjEgKzkwMiwxNyBAQA0KIAkJICovDQogCQlpZiAo dHQgPT0gc2F2ZWRfdHQpIHsNCiAJCQkvKiByZW1vdmUgZnJvbSBoZWFkIG9m IGNoYWluICovDQotCQkJeCA9IGR1cGVka2V5OyB4LT5ybl9wYXJlbnQgPSB0 Ow0KKwkJCXggPSBkdXBlZGtleTsgDQorCQkJeC0+cm5fcGFyZW50ID0gdDsN CiAJCQlpZiAodC0+cm5fbGVmdCA9PSB0dCkNCiAJCQkJdC0+cm5fbGVmdCA9 IHg7DQogCQkJZWxzZQ0KIAkJCQl0LT5ybl9yaWdodCA9IHg7DQogCQl9IGVs c2Ugew0KLQkJCS8qIGZpbmQgbm9kZSBpbiBmcm9udCBvZiB0dCBvbiB0aGUg Y2hhaW4gKi8NCi0JCQlmb3IgKHggPSBwID0gc2F2ZWRfdHQ7IHAgJiYgcC0+ cm5fZHVwZWRrZXkgIT0gdHQ7KQ0KLQkJCQlwID0gcC0+cm5fZHVwZWRrZXk7 DQotCQkJaWYgKHApIHsNCi0JCQkJcC0+cm5fZHVwZWRrZXkgPSB0dC0+cm5f ZHVwZWRrZXk7DQotCQkJCWlmICh0dC0+cm5fZHVwZWRrZXkpCQkvKiBwYXJl bnQgKi8NCi0JCQkJCXR0LT5ybl9kdXBlZGtleS0+cm5fcGFyZW50ID0gcDsN Ci0JCQkJCQkJCS8qIHBhcmVudCAqLw0KLQkJCX0gZWxzZSBsb2coTE9HX0VS UiwgInJuX2RlbGV0ZTogY291bGRuJ3QgZmluZCB1c1xuIik7DQorCQkJeCA9 IHNhdmVkX3R0Ow0KKwkJCXQtPnJuX2R1cGVka2V5ID0gdHQtPnJuX2R1cGVk a2V5Ow0KKwkJCWlmICh0dC0+cm5fZHVwZWRrZXkpDQorCQkJCXR0LT5ybl9k dXBlZGtleS0+cm5fcGFyZW50ID0gdDsNCiAJCX0NCiAJCXQgPSB0dCArIDE7 DQogCQlpZiAgKHQtPnJuX2ZsYWdzICYgUk5GX0FDVElWRSkgew0KQEAgLTkz MSwxNCArOTYwLDIxIEBADQogCQkJCWlmIChtID09IHgtPnJuX21rbGlzdCkg ew0KIAkJCQkJc3RydWN0IHJhZGl4X21hc2sgKm1tID0gbS0+cm1fbWtsaXN0 Ow0KIAkJCQkJeC0+cm5fbWtsaXN0ID0gMDsNCi0JCQkJCWlmICgtLShtLT5y bV9yZWZzKSA8IDApDQorCQkJCQlpZiAoLS0obS0+cm1fcmVmcykgPCAwKSB7 DQogCQkJCQkJTUtGcmVlKG0pOw0KKwkJCQkJfSBlbHNlIGlmIChtLT5ybV9m bGFncyAmIFJORl9OT1JNQUwpIHsNCisJCQkJCQkvKg0KKwkJCQkJCSAqIGRv bid0IHByb2dyZXNzIGJlY2F1c2UgdGhpcw0KKwkJCQkJCSAqIGEgbXVsdGlw YXRoIHJvdXRlLiBOZXh0DQorCQkJCQkJICogcm91dGUgd2lsbCB1c2UgdGhl IHNhbWUgbS4NCisJCQkJCQkgKi8NCisJCQkJCQltbSA9IG07DQorCQkJCQl9 DQogCQkJCQltID0gbW07DQogCQkJCX0NCiAJCQlpZiAobSkNCiAJCQkJbG9n KExPR19FUlIsDQotCQkJCSAgICAicm5fZGVsZXRlOiBPcnBoYW5lZCBNYXNr ICVwIGF0ICVwXG4iLA0KLQkJCQkgICAgbSwgeCk7DQorCQkJCSAgICAicm5f ZGVsZXRlOiBPcnBoYW5lZCBNYXNrICVwIGF0ICVwXG4iLCBtLCB4KTsNCiAJ CX0NCiAJfQ0KIAkvKg0KQEAgLTk5MCwxMSArMTAyNiw4IEBADQogCSAqIHJu X3NlYXJjaF9tIGlzIHNvcnQtb2Ytb3Blbi1jb2RlZCBoZXJlLiBXZSBjYW5u b3QgdXNlIHRoZQ0KIAkgKiBmdW5jdGlvbiBiZWNhdXNlIHdlIG5lZWQgdG8g a2VlcCB0cmFjayBvZiB0aGUgbGFzdCBub2RlIHNlZW4uDQogCSAqLw0KLQkv KiBwcmludGYoImFib3V0IHRvIHNlYXJjaFxuIik7ICovDQogCWZvciAocm4g PSBoLT5ybmhfdHJlZXRvcDsgcm4tPnJuX2JpdCA+PSAwOyApIHsNCiAJCWxh c3QgPSBybjsNCi0JCS8qIHByaW50Zigicm5fYml0ICVkLCBybl9ibWFzayAl eCwgeG1bcm5fb2Zmc2V0XSAleFxuIiwNCi0JCSAgICAgICBybi0+cm5fYml0 LCBybi0+cm5fYm1hc2ssIHhtW3JuLT5ybl9vZmZzZXRdKTsgKi8NCiAJCWlm ICghKHJuLT5ybl9ibWFzayAmIHhtW3JuLT5ybl9vZmZzZXRdKSkgew0KIAkJ CWJyZWFrOw0KIAkJfQ0KQEAgLTEwMDQsNyArMTAzNyw2IEBADQogCQkJcm4g PSBybi0+cm5fbGVmdDsNCiAJCX0NCiAJfQ0KLQkvKiBwcmludGYoImRvbmUg c2VhcmNoaW5nXG4iKTsgKi8NCiANCiAJLyoNCiAJICogVHdvIGNhc2VzOiBl aXRoZXIgd2Ugc3RlcHBlZCBvZmYgdGhlIGVuZCBvZiBvdXIgbWFzaywNCkBA IC0xMDE1LDggKzEwNDcsNiBAQA0KIAlybiA9IGxhc3Q7DQogCWxhc3RiID0g cm4tPnJuX2JpdDsNCiANCi0JLyogcHJpbnRmKCJybiAlcCwgbGFzdGIgJWRc biIsIHJuLCBsYXN0Yik7Ki8NCi0NCiAJLyoNCiAJICogVGhpcyBnZXRzIGNv bXBsaWNhdGVkIGJlY2F1c2Ugd2UgbWF5IGRlbGV0ZSB0aGUgbm9kZQ0KIAkg KiB3aGlsZSBhcHBseWluZyB0aGUgZnVuY3Rpb24gZiB0byBpdCwgc28gd2Ug bmVlZCB0byBjYWxjdWxhdGUNCkBAIC0xMDI2LDcgKzEwNTYsNiBAQA0KIAkJ cm4gPSBybi0+cm5fbGVmdDsNCiANCiAJd2hpbGUgKCFzdG9wcGluZykgew0K LQkJLyogcHJpbnRmKCJub2RlICVwICglZClcbiIsIHJuLCBybi0+cm5fYml0 KTsgKi8NCiAJCWJhc2UgPSBybjsNCiAJCS8qIElmIGF0IHJpZ2h0IGNoaWxk IGdvIGJhY2sgdXAsIG90aGVyd2lzZSwgZ28gcmlnaHQgKi8NCiAJCXdoaWxl IChybi0+cm5fcGFyZW50LT5ybl9yaWdodCA9PSBybg0KQEAgLTEwMzYsNyAr MTA2NSw2IEBADQogCQkJLyogaWYgd2VudCB1cCBiZXlvbmQgbGFzdCwgc3Rv cCAqLw0KIAkJCWlmIChybi0+cm5fYml0IDw9IGxhc3RiKSB7DQogCQkJCXN0 b3BwaW5nID0gMTsNCi0JCQkJLyogcHJpbnRmKCJ1cCB0b28gZmFyXG4iKTsg Ki8NCiAJCQkJLyoNCiAJCQkJICogWFhYIHdlIHNob3VsZCBqdW1wIHRvIHRo ZSAnUHJvY2VzcyBsZWF2ZXMnDQogCQkJCSAqIHBhcnQsIGJlY2F1c2UgdGhl IHZhbHVlcyBvZiAncm4nIGFuZCAnbmV4dCcNCkBAIC0xMDYyLDcgKzEwOTAs NiBAQA0KIAkJLyogUHJvY2VzcyBsZWF2ZXMgKi8NCiAJCXdoaWxlICgocm4g PSBiYXNlKSAhPSAwKSB7DQogCQkJYmFzZSA9IHJuLT5ybl9kdXBlZGtleTsN Ci0JCQkvKiBwcmludGYoImxlYWYgJXBcbiIsIHJuKTsgKi8NCiAJCQlpZiAo IShybi0+cm5fZmxhZ3MgJiBSTkZfUk9PVCkNCiAJCQkgICAgJiYgKGVycm9y ID0gKCpmKShybiwgdykpKQ0KIAkJCQlyZXR1cm4gKGVycm9yKTsNCkBAIC0x MDcwLDcgKzEwOTcsNiBAQA0KIAkJcm4gPSBuZXh0Ow0KIA0KIAkJaWYgKHJu LT5ybl9mbGFncyAmIFJORl9ST09UKSB7DQotCQkJLyogcHJpbnRmKCJyb290 LCBzdG9wcGluZyIpOyAqLw0KIAkJCXN0b3BwaW5nID0gMTsNCiAJCX0NCiAN CmRpZmYgLXIgLXUgL3Vzci9zcmMvc3lzL25ldC9yYWRpeC5oIC9yb3V0ZXIv dXNyL3NyYy9zeXMvbmV0L3JhZGl4LmgNCi0tLSAvdXNyL3NyYy9zeXMvbmV0 L3JhZGl4LmgJMjAxMC0wMy0yMyAwOTo1ODo1OS4wMDAwMDAwMDAgKzAwMDAN CisrKyAvcm91dGVyL3Vzci9zcmMvc3lzL25ldC9yYWRpeC5oCTIwMTAtMDgt MjYgMTI6MDI6NTIuMDAwMDAwMDAwICswMDAwDQpAQCAtMTE0LDcgKzExNCw3 IEBADQogCQkodm9pZCAqdiwgdm9pZCAqbWFzaywNCiAJCSAgICAgc3RydWN0 IHJhZGl4X25vZGVfaGVhZCAqaGVhZCwgc3RydWN0IHJhZGl4X25vZGUgbm9k ZXNbXSk7DQogCXN0cnVjdAlyYWRpeF9ub2RlICooKnJuaF9kZWxhZGRyKQkv KiByZW1vdmUgYmFzZWQgb24gc29ja2FkZHIgKi8NCi0JCSh2b2lkICp2LCB2 b2lkICptYXNrLCBzdHJ1Y3QgcmFkaXhfbm9kZV9oZWFkICpoZWFkKTsNCisJ CSh2b2lkICp2LCB2b2lkICptYXNrLCBzdHJ1Y3QgcmFkaXhfbm9kZV9oZWFk ICpoZWFkLCBzdHJ1Y3QgcmFkaXhfbm9kZSAqcm4pOw0KIAlzdHJ1Y3QJcmFk aXhfbm9kZSAqKCpybmhfZGVscGt0KQkvKiByZW1vdmUgYmFzZWQgb24gcGFj a2V0IGhkciAqLw0KIAkJKHZvaWQgKnYsIHZvaWQgKm1hc2ssIHN0cnVjdCBy YWRpeF9ub2RlX2hlYWQgKmhlYWQpOw0KIAlzdHJ1Y3QJcmFkaXhfbm9kZSAq KCpybmhfbWF0Y2hhZGRyKQkvKiBsb2NhdGUgYmFzZWQgb24gc29ja2FkZHIg Ki8NCkBAIC0xNjgsNyArMTY4LDcgQEANCiAJICpybl9hZGRtYXNrKHZvaWQg KiwgaW50LCBpbnQpLA0KIAkgKnJuX2FkZHJvdXRlICh2b2lkICosIHZvaWQg Kiwgc3RydWN0IHJhZGl4X25vZGVfaGVhZCAqLA0KIAkJCXN0cnVjdCByYWRp eF9ub2RlIFsyXSksDQotCSAqcm5fZGVsZXRlKHZvaWQgKiwgdm9pZCAqLCBz dHJ1Y3QgcmFkaXhfbm9kZV9oZWFkICopLA0KKwkgKnJuX2RlbGV0ZSh2b2lk ICosIHZvaWQgKiwgc3RydWN0IHJhZGl4X25vZGVfaGVhZCAqLCBzdHJ1Y3Qg cmFkaXhfbm9kZSAqKSwNCiAJICpybl9sb29rdXAgKHZvaWQgKnZfYXJnLCB2 b2lkICptX2FyZywNCiAJCSAgICAgICAgc3RydWN0IHJhZGl4X25vZGVfaGVh ZCAqaGVhZCksDQogCSAqcm5fbWF0Y2godm9pZCAqLCBzdHJ1Y3QgcmFkaXhf bm9kZV9oZWFkICopOw0KZGlmZiAtciAtdSAvdXNyL3NyYy9zeXMvbmV0L3Jh ZGl4X21wYXRoLmMgL3JvdXRlci91c3Ivc3JjL3N5cy9uZXQvcmFkaXhfbXBh dGguYw0KLS0tIC91c3Ivc3JjL3N5cy9uZXQvcmFkaXhfbXBhdGguYwkyMDEw LTA4LTI2IDE0OjI2OjM5LjAwMDAwMDAwMCArMDAwMA0KKysrIC9yb3V0ZXIv dXNyL3NyYy9zeXMvbmV0L3JhZGl4X21wYXRoLmMJMjAxMC0wOC0yNiAxNDoz MDoyNS4wMDAwMDAwMDAgKzAwMDANCkBAIC0xMjUsMzMgKzEyNSw2IEBADQog CXJldHVybiAoc3RydWN0IHJ0ZW50cnkgKilybjsNCiB9DQogDQotLyogDQot ICogZ28gdGhyb3VnaCB0aGUgY2hhaW4gYW5kIHVubGluayAicnQiIGZyb20g dGhlIGxpc3QNCi0gKiB0aGUgY2FsbGVyIHdpbGwgZnJlZSAicnQiDQotICov DQotaW50DQotcnRfbXBhdGhfZGVsZHVwKHN0cnVjdCBydGVudHJ5ICpoZWFk cnQsIHN0cnVjdCBydGVudHJ5ICpydCkNCi17DQotICAgICAgICBzdHJ1Y3Qg cmFkaXhfbm9kZSAqdCwgKnR0Ow0KLQ0KLSAgICAgICAgaWYgKCFoZWFkcnQg fHwgIXJ0KQ0KLSAgICAgICAgICAgIHJldHVybiAoMCk7DQotICAgICAgICB0 ID0gKHN0cnVjdCByYWRpeF9ub2RlICopaGVhZHJ0Ow0KLSAgICAgICAgdHQg PSBybl9tcGF0aF9uZXh0KHQpOw0KLSAgICAgICAgd2hpbGUgKHR0KSB7DQot ICAgICAgICAgICAgaWYgKHR0ID09IChzdHJ1Y3QgcmFkaXhfbm9kZSAqKXJ0 KSB7DQotICAgICAgICAgICAgICAgIHQtPnJuX2R1cGVka2V5ID0gdHQtPnJu X2R1cGVka2V5Ow0KLSAgICAgICAgICAgICAgICB0dC0+cm5fZHVwZWRrZXkg PSBOVUxMOw0KLSAgICAJICAgICAgICB0dC0+cm5fZmxhZ3MgJj0gflJORl9B Q1RJVkU7DQotCSAgICAgICAgdHRbMV0ucm5fZmxhZ3MgJj0gflJORl9BQ1RJ VkU7DQotICAgICAgICAgICAgICAgIHJldHVybiAoMSk7DQotICAgICAgICAg ICAgfQ0KLSAgICAgICAgICAgIHQgPSB0dDsNCi0gICAgICAgICAgICB0dCA9 IHJuX21wYXRoX25leHQoKHN0cnVjdCByYWRpeF9ub2RlICopdCk7DQotICAg ICAgICB9DQotICAgICAgICByZXR1cm4gKDApOw0KLX0NCi0NCiAvKg0KICAq IGNoZWNrIGlmIHdlIGhhdmUgdGhlIHNhbWUga2V5L21hc2svZ2F0ZXdheSBv biB0aGUgdGFibGUgYWxyZWFkeS4NCiAgKi8NCkBAIC0yNjIsOSArMjM1LDEw IEBADQogcnRhbGxvY19tcGF0aF9maWIoc3RydWN0IHJvdXRlICpybywgdWlu dDMyX3QgaGFzaCwgdV9pbnQgZmlibnVtKQ0KIHsNCiAJc3RydWN0IHJhZGl4 X25vZGUgKnJuMCwgKnJuOw0KLQl1X2ludDMyX3QgbjsNCisJdV9pbnQzMl90 IG4gPSAwOw0KIAlzdHJ1Y3QgcnRlbnRyeSAqcnQ7DQogCWludDY0X3Qgd2Vp Z2h0Ow0KKwlpbnQ2NF90IGxvd2VzdF93ZWlnaHQ7DQogDQogCS8qDQogCSAq IFhYWCB3ZSBkb24ndCBhdHRlbXB0IHRvIGxvb2t1cCBjYWNoZWQgcm91dGUg YWdhaW47IHdoYXQgc2hvdWxkDQpAQCAtMjg1LDIzICsyNTksMzQgQEANCiAN CiAJLyogYmV5b25kIGhlcmUsIHdlIHVzZSBybiBhcyB0aGUgbWFzdGVyIGNv cHkgKi8NCiAJcm4wID0gcm4gPSAoc3RydWN0IHJhZGl4X25vZGUgKilyby0+ cm9fcnQ7DQotCW4gPSBybl9tcGF0aF9jb3VudChybjApOw0KLQ0KKwkNCisJ LyogZmluZCBsb3dlc3Qgd2VpZ2h0IHJvdXRlICovDQorCWZvciAoIHJ0ID0g KHN0cnVjdCBydGVudHJ5ICopcm4sIHdlaWdodCA9IHJ0LT5ydF9ybXgucm14 X3dlaWdodDsgcm4gIT0gTlVMTDsgcm4gPSBybl9tcGF0aF9uZXh0KCBybikp IHsNCisJCS8qIFhYWCBjaGVjayBpZiByb3V0ZSBpcyB1cD8gKi8NCisJCXJ0 ID0gKHN0cnVjdCBydGVudHJ5ICopcm47DQorCQlpZihydC0+cnRfZmxhZ3Mg JiBSVEZfVVApIHsgDQorCQkJaWYgKHdlaWdodCA+IHJ0LT5ydF9ybXgucm14 X3dlaWdodCkgew0KKwkJCQl3ZWlnaHQgPSBydC0+cnRfcm14LnJteF93ZWln aHQ7DQorCQkJCW4gPSAxOw0KKwkJCX0gZWxzZSBpZiAod2VpZ2h0ID09IHJ0 LT5ydF9ybXgucm14X3dlaWdodCkNCisJCQkJbisrOw0KKwkJfQ0KKwl9DQor CWxvd2VzdF93ZWlnaHQgPSB3ZWlnaHQ7DQorCQ0KKwkvKiBzZWxlY3Qgbm93 IG9uZSBvZiB0aGUgbG93ZXN0IHdlaWdodCByb3V0ZXMgKi8NCiAJLyogZ3cg c2VsZWN0aW9uIGJ5IE1vZHVsby1OIEhhc2ggKFJGQzI5OTEpIFhYWCBuZWVk IGltcHJvdmVtZW50PyAqLw0KIAloYXNoICs9IGhhc2hqaXR0ZXI7DQogCWhh c2ggJT0gbjsNCi0JZm9yICh3ZWlnaHQgPSBhYnMoKGludDMyX3QpaGFzaCks IHJ0ID0gcm8tPnJvX3J0Ow0KLQkgICAgIHdlaWdodCA+PSBydC0+cnRfcm14 LnJteF93ZWlnaHQgJiYgcm47IA0KLQkgICAgIHdlaWdodCAtPSBydC0+cnRf cm14LnJteF93ZWlnaHQpIHsNCi0JCQ0KLQkJLyogY2hlY2sgaWYgbmV4dCBr ZXkgZXhpc3RzICovDQotCQlpZiAocm4tPnJuX2R1cGVka2V5ID09IE5VTEwp DQotCQkJYnJlYWs7DQotCQkvKiBzdGF5IHdpdGhpbiB0aGUgbXVsdGlwYXRo IHJvdXRlcyAqLw0KLQkJaWYgKHJuLT5ybl9kdXBlZGtleSAmJiBybi0+cm5f bWFzayAhPSBybi0+cm5fZHVwZWRrZXktPnJuX21hc2spDQotCQkJYnJlYWs7 DQotCQlybiA9IHJuLT5ybl9kdXBlZGtleTsNCisJZm9yICggcm4gPSBybjAs IG4gPSAwOyBybiAhPSBOVUxMOyBybiA9IHJuX21wYXRoX25leHQoIHJuKSkg ew0KIAkJcnQgPSAoc3RydWN0IHJ0ZW50cnkgKilybjsNCisJCWlmKHJ0LT5y dF9mbGFncyAmIFJURl9VUCkgeyANCisJCQlpZiAoIHJ0LT5ydF9ybXgucm14 X3dlaWdodCA9PSBsb3dlc3Rfd2VpZ2h0KSB7DQorCQkJCWlmIChuID09IGhh c2gpDQorCQkJCQlicmVhazsNCisJCQkJbisrOw0KKwkJCX0NCisJCX0NCiAJ fQ0KIAkvKiBYWFggdHJ5IGZpbGxpbmcgcnRfZ3dyb3V0ZSBhbmQgYXZvaWQg dW5yZWFjaGFibGUgZ3cgICovDQogDQpkaWZmIC1yIC11IC91c3Ivc3JjL3N5 cy9uZXQvcm91dGUuYyAvcm91dGVyL3Vzci9zcmMvc3lzL25ldC9yb3V0ZS5j DQotLS0gL3Vzci9zcmMvc3lzL25ldC9yb3V0ZS5jCTIwMTAtMDYtMTggMDM6 MzE6MzMuMDAwMDAwMDAwICswMDAwDQorKysgL3JvdXRlci91c3Ivc3JjL3N5 cy9uZXQvcm91dGUuYwkyMDEwLTA4LTI2IDE4OjIxOjU0LjAwMDAwMDAwMCAr MDAwMA0KQEAgLTg3NSw3ICs4NzUsNyBAQA0KIAkgKiBSZW1vdmUgdGhlIGl0 ZW0gZnJvbSB0aGUgdHJlZTsgaXQgc2hvdWxkIGJlIHRoZXJlLA0KIAkgKiBi dXQgd2hlbiBjYWxsZXJzIGludm9rZSB1cyBibGluZGx5IGl0IG1heSBub3Qg KHNpZ2gpLg0KIAkgKi8NCi0Jcm4gPSBybmgtPnJuaF9kZWxhZGRyKHJ0X2tl eShydCksIHJ0X21hc2socnQpLCBybmgpOw0KKwlybiA9IHJuaC0+cm5oX2Rl bGFkZHIocnRfa2V5KHJ0KSwgcnRfbWFzayhydCksIHJuaCwgTlVMTCk7DQog CWlmIChybiA9PSBOVUxMKSB7DQogCQllcnJvciA9IEVTUkNIOw0KIAkJZ290 byBiYWQ7DQpAQCAtOTEzLDExMiArOTEzLDYgQEANCiAJcmV0dXJuIChlcnJv cik7DQogfQ0KIA0KLSNpZmRlZiBSQURJWF9NUEFUSA0KLXN0YXRpYyBpbnQN Ci1ybl9tcGF0aF91cGRhdGUoaW50IHJlcSwgc3RydWN0IHJ0X2FkZHJpbmZv ICppbmZvLA0KLSAgICBzdHJ1Y3QgcmFkaXhfbm9kZV9oZWFkICpybmgsIHN0 cnVjdCBydGVudHJ5ICoqcmV0X25ydCkNCi17DQotCS8qDQotCSAqIGlmIHdl IGdvdCBtdWx0aXBhdGggcm91dGVzLCB3ZSByZXF1aXJlIHVzZXJzIHRvIHNw ZWNpZnkNCi0JICogYSBtYXRjaGluZyBSVEFYX0dBVEVXQVkuDQotCSAqLw0K LQlzdHJ1Y3QgcnRlbnRyeSAqcnQsICpydG8gPSBOVUxMOw0KLQlyZWdpc3Rl ciBzdHJ1Y3QgcmFkaXhfbm9kZSAqcm47DQotCWludCBlcnJvciA9IDA7DQot DQotCXJuID0gcm5oLT5ybmhfbWF0Y2hhZGRyKGRzdCwgcm5oKTsNCi0JaWYg KHJuID09IE5VTEwpDQotCQlyZXR1cm4gKEVTUkNIKTsNCi0JcnRvID0gcnQg PSBSTlRPUlQocm4pOw0KLQlydCA9IHJ0X21wYXRoX21hdGNoZ2F0ZShydCwg Z2F0ZXdheSk7DQotCWlmIChydCA9PSBOVUxMKQ0KLQkJcmV0dXJuIChFU1JD SCk7DQotCS8qDQotCSAqIHRoaXMgaXMgdGhlIGZpcnN0IGVudHJ5IGluIHRo ZSBjaGFpbg0KLQkgKi8NCi0JaWYgKHJ0byA9PSBydCkgew0KLQkJcm4gPSBy bl9tcGF0aF9uZXh0KChzdHJ1Y3QgcmFkaXhfbm9kZSAqKXJ0KTsNCi0JCS8q DQotCQkgKiB0aGVyZSBpcyBhbm90aGVyIGVudHJ5LCBub3cgaXQncyBhY3Rp dmUNCi0JCSAqLw0KLQkJaWYgKHJuKSB7DQotCQkJcnRvID0gUk5UT1JUKHJu KTsNCi0JCQlSVF9MT0NLKHJ0byk7DQotCQkJcnRvLT5ydF9mbGFncyB8PSBS VEZfVVA7DQotCQkJUlRfVU5MT0NLKHJ0byk7DQotCQl9IGVsc2UgaWYgKHJ0 LT5ydF9mbGFncyAmIFJURl9HQVRFV0FZKSB7DQotCQkJLyoNCi0JCQkgKiBG b3IgZ2F0ZXdheSByb3V0ZXMsIHdlIG5lZWQgdG8gDQotCQkJICogbWFrZSBz dXJlIHRoYXQgd2Ugd2UgYXJlIGRlbGV0aW5nDQotCQkJICogdGhlIGNvcnJl Y3QgZ2F0ZXdheS4gDQotCQkJICogcnRfbXBhdGhfbWF0Y2hnYXRlKCkgZG9l cyBub3QgDQotCQkJICogY2hlY2sgdGhlIGNhc2Ugd2hlbiB0aGVyZSBpcyBv bmx5DQotCQkJICogb25lIHJvdXRlIGluIHRoZSBjaGFpbi4gIA0KLQkJCSAq Lw0KLQkJCWlmIChnYXRld2F5ICYmDQotCQkJICAgIChydC0+cnRfZ2F0ZXdh eS0+c2FfbGVuICE9IGdhdGV3YXktPnNhX2xlbiB8fA0KLQkJCQltZW1jbXAo cnQtPnJ0X2dhdGV3YXksIGdhdGV3YXksIGdhdGV3YXktPnNhX2xlbikpKQ0K LQkJCQllcnJvciA9IEVTUkNIOw0KLQkJCWVsc2Ugew0KLQkJCQkvKg0KLQkJ CQkgKiByZW1vdmUgZnJvbSB0cmVlIGJlZm9yZSByZXR1cm5pbmcgaXQNCi0J CQkJICogdG8gdGhlIGNhbGxlcg0KLQkJCQkgKi8NCi0JCQkJcm4gPSBybmgt PnJuaF9kZWxhZGRyKGRzdCwgbmV0bWFzaywgcm5oKTsNCi0JCQkJS0FTU0VS VChydCA9PSBSTlRPUlQocm4pLCAoInJhZGl4IG5vZGUgZGlzYXBwZWFyZWQi KSk7DQotCQkJCWdvdG8gZ3dkZWxldGU7DQotCQkJfQ0KLQkJCQ0KLQkJfQ0K LQkJLyoNCi0JCSAqIHVzZSB0aGUgbm9ybWFsIGRlbGV0ZSBjb2RlIHRvIHJl bW92ZQ0KLQkJICogdGhlIGZpcnN0IGVudHJ5DQotCQkgKi8NCi0JCWlmIChy ZXEgIT0gUlRNX0RFTEVURSkgDQotCQkJZ290byBub25kZWxldGU7DQotDQot CQllcnJvciA9IEVOT0VOVDsNCi0JCWdvdG8gZG9uZTsNCi0JfQ0KLQkJDQot CS8qDQotCSAqIGlmIHRoZSBlbnRyeSBpcyAybmQgYW5kIG9uIHVwDQotCSAq Lw0KLQlpZiAoKHJlcSA9PSBSVE1fREVMRVRFKSAmJiAhcnRfbXBhdGhfZGVs ZHVwKHJ0bywgcnQpKQ0KLQkJcGFuaWMgKCJydHJlcXVlc3QxOiBydF9tcGF0 aF9kZWxkdXAiKTsNCi1nd2RlbGV0ZToNCi0JUlRfTE9DSyhydCk7DQotCVJU X0FERFJFRihydCk7DQotCWlmIChyZXEgPT0gUlRNX0RFTEVURSkgew0KLQkJ cnQtPnJ0X2ZsYWdzICY9IH5SVEZfVVA7DQotCQkvKg0KLQkJICogT25lIG1v cmUgcnRlbnRyeSBmbG9hdGluZyBhcm91bmQgdGhhdCBpcyBub3QNCi0JCSAq IGxpbmtlZCB0byB0aGUgcm91dGluZyB0YWJsZS4gcnR0cmFzaCB3aWxsIGJl IGRlY3JlbWVudGVkDQotCQkgKiB3aGVuIFJURlJFRShydCkgaXMgZXZlbnR1 YWxseSBjYWxsZWQuDQotCQkgKi8NCi0JCVZfcnR0cmFzaCsrOw0KLQl9DQot CQ0KLW5vbmRlbGV0ZToNCi0JaWYgKHJlcSAhPSBSVE1fREVMRVRFKQ0KLQkJ cGFuaWMoInVucmVjb2duaXplZCByZXF1ZXN0ICVkIiwgcmVxKTsNCi0JDQot DQotCS8qDQotCSAqIElmIHRoZSBjYWxsZXIgd2FudHMgaXQsIHRoZW4gaXQg Y2FuIGhhdmUgaXQsDQotCSAqIGJ1dCBpdCdzIHVwIHRvIGl0IHRvIGZyZWUg dGhlIHJ0ZW50cnkgYXMgd2Ugd29uJ3QgYmUNCi0JICogZG9pbmcgaXQuDQot CSAqLw0KLQlpZiAocmV0X25ydCkgew0KLQkJKnJldF9ucnQgPSBydDsNCi0J CVJUX1VOTE9DSyhydCk7DQotCX0gZWxzZQ0KLQkJUlRGUkVFX0xPQ0tFRChy dCk7DQotZG9uZToNCi0JcmV0dXJuIChlcnJvcik7DQotfQ0KLSNlbmRpZg0K LQ0KIGludA0KIHJ0cmVxdWVzdDFfZmliKGludCByZXEsIHN0cnVjdCBydF9h ZGRyaW5mbyAqaW5mbywgc3RydWN0IHJ0ZW50cnkgKipyZXRfbnJ0LA0KIAkJ CQl1X2ludCBmaWJudW0pDQpAQCAtMTA1OCwyOCArOTUyLDMwIEBADQogDQog CXN3aXRjaCAocmVxKSB7DQogCWNhc2UgUlRNX0RFTEVURToNCisJICAgICAg ICBpZiAoKHJuID0gcm5oLT5ybmhfbG9va3VwKGRzdCwgbmV0bWFzaywgcm5o KSkgPT0gTlVMTCkNCisJICAgICAgICAgICAgICAgIHNlbmRlcnIoRVNSQ0gp Ow0KKwkJcnQgPSBSTlRPUlQocm4pOw0KICNpZmRlZiBSQURJWF9NUEFUSA0K LQkJaWYgKHJuX21wYXRoX2NhcGFibGUocm5oKSkgew0KLQkJCWVycm9yID0g cm5fbXBhdGhfdXBkYXRlKHJlcSwgaW5mbywgcm5oLCByZXRfbnJ0KTsNCi0J CQkvKg0KLQkJCSAqICJiYWQiIGhvbGRzIHRydWUgZm9yIHRoZSBzdWNjZXNz IGNhc2UNCi0JCQkgKiBhcyB3ZWxsDQotCQkJICovDQotCQkJaWYgKGVycm9y ICE9IEVOT0VOVCkNCi0JCQkJZ290byBiYWQ7DQotCQkJZXJyb3IgPSAwOw0K LQkJfQ0KKyAgICAgICAgICAgICAgICAvKg0KKyAgICAgICAgICAgICAgICAg KiBpZiB3ZSBnb3QgbXVsdGlwYXRoIHJvdXRlcywgd2UgcmVxdWlyZSB1c2Vy cyB0byBzcGVjaWZ5DQorICAgICAgICAgICAgICAgICAqIGEgbWF0Y2hpbmcg UlRBWF9HQVRFV0FZLg0KKyAgICAgICAgICAgICAgICAgKi8NCisgICAgICAg ICAgICAgICAgaWYgKHJuX21wYXRoX2NhcGFibGUocm5oKSkgew0KKyAgICAg ICAgICAgICAgICAgICAgICAgIHJ0ID0gcnRfbXBhdGhfbWF0Y2hnYXRlKCBy dCwgZ2F0ZXdheSk7DQorICAgICAgICAgICAgICAgICAgICAgICAgcm4gPSAo c3RydWN0IHJhZGl4X25vZGUgKilydDsNCisgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoIXJ0KQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VuZGVycihFU1JDSCk7DQorICAgICAgICAgICAgICAgIH0NCiAjZW5k aWYNCiAJCS8qDQogCQkgKiBSZW1vdmUgdGhlIGl0ZW0gZnJvbSB0aGUgdHJl ZSBhbmQgcmV0dXJuIGl0Lg0KIAkJICogQ29tcGxhaW4gaWYgaXQgaXMgbm90 IHRoZXJlIGFuZCBkbyBubyBtb3JlIHByb2Nlc3NpbmcuDQogCQkgKi8NCi0J CXJuID0gcm5oLT5ybmhfZGVsYWRkcihkc3QsIG5ldG1hc2ssIHJuaCk7DQor CQlybiA9IHJuaC0+cm5oX2RlbGFkZHIoZHN0LCBuZXRtYXNrLCBybmgsIHJu KTsNCiAJCWlmIChybiA9PSBOVUxMKQ0KIAkJCXNlbmRlcnIoRVNSQ0gpOw0K IAkJaWYgKHJuLT5ybl9mbGFncyAmIChSTkZfQUNUSVZFIHwgUk5GX1JPT1Qp KQ0KIAkJCXBhbmljICgicnRyZXF1ZXN0IGRlbGV0ZSIpOw0KLQkJcnQgPSBS TlRPUlQocm4pOw0KIAkJUlRfTE9DSyhydCk7DQogCQlSVF9BRERSRUYocnQp Ow0KIAkJcnQtPnJ0X2ZsYWdzICY9IH5SVEZfVVA7DQpAQCAtMTQ3NCwxMCAr MTM3MCw5IEBADQogCQkJICAgIFJOVE9SVChybiktPnJ0X2lmYSAhPSBpZmEg fHwNCiAJCQkgICAgIXNhX2VxdWFsKChzdHJ1Y3Qgc29ja2FkZHIgKilybi0+ cm5fa2V5LCBkc3QpKTsNCiAJCQlSQURJWF9OT0RFX0hFQURfVU5MT0NLKHJu aCk7DQotCQkJaWYgKGVycm9yKSB7DQorCQkJaWYgKGVycm9yKQ0KIAkJCQkv KiB0aGlzIGlzIG9ubHkgYW4gZXJyb3IgaWYgYmFkIG9uIEFMTCB0YWJsZXMg Ki8NCiAJCQkJY29udGludWU7DQotCQkJfQ0KIAkJfQ0KIAkJLyoNCiAJCSAq IERvIHRoZSBhY3R1YWwgcmVxdWVzdA0KZGlmZiAtciAtdSAvdXNyL3NyYy9z eXMvbmV0aW5ldC9pbi5jIC9yb3V0ZXIvdXNyL3NyYy9zeXMvbmV0aW5ldC9p bi5jDQotLS0gL3Vzci9zcmMvc3lzL25ldGluZXQvaW4uYwkyMDEwLTA4LTI2 IDE0OjU3OjU3LjAwMDAwMDAwMCArMDAwMA0KKysrIC9yb3V0ZXIvdXNyL3Ny Yy9zeXMvbmV0aW5ldC9pbi5jCTIwMTAtMDgtMjYgMTQ6NTg6NDAuMDAwMDAw MDAwICswMDAwDQpAQCAtMTM3MywxMiArMTM3Myw0NSBAQA0KIGluX2xsdGFi bGVfcnRjaGVjayhzdHJ1Y3QgaWZuZXQgKmlmcCwgdV9pbnQgZmxhZ3MsIGNv bnN0IHN0cnVjdCBzb2NrYWRkciAqbDNhZGRyKQ0KIHsNCiAJc3RydWN0IHJ0 ZW50cnkgKnJ0Ow0KKyNpZmRlZiBSQURJWF9NUEFUSA0KKwlpbnQ2NF90IHdl aWdodDsNCisJc3RydWN0IHJ0ZW50cnkgKnJ0MDsNCisJaW50MzJfdCBmb3Vu ZCA9IDA7DQorI2VuZGlmDQogDQogCUtBU1NFUlQobDNhZGRyLT5zYV9mYW1p bHkgPT0gQUZfSU5FVCwNCiAJICAgICgic2luX2ZhbWlseSAlZCIsIGwzYWRk ci0+c2FfZmFtaWx5KSk7DQogDQogCS8qIFhYWCBydGFsbG9jMSBzaG91bGQg dGFrZSBhIGNvbnN0IHBhcmFtICovDQogCXJ0ID0gcnRhbGxvYzEoX19ERUNP TlNUKHN0cnVjdCBzb2NrYWRkciAqLCBsM2FkZHIpLCAwLCAwKTsNCisNCisj aWZkZWYgUkFESVhfTVBBVEgNCisJcnQwID0gcnQ7DQorICAgICAgICBpZiAo KHJ0ICE9IE5VTEwpICYmICggcm5fbXBhdGhfbmV4dCgoc3RydWN0IHJhZGl4 X25vZGUgKilydCkgIT0gTlVMTCkpIHsNCisJCS8qIGNoZWNrIGlmIHRoZXJl IGFyZSBvdGhlciwgbWF0Y2hpbmcgcm91dGVzICovDQorCQkvKiBmaW5kIGxv d2VzdCB3ZWlnaHQgcm91dGUgKi8NCisJCWZvciAoIHdlaWdodCA9IHJ0LT5y dF9ybXgucm14X3dlaWdodDsgcnQgIT0gTlVMTDsgcnQgPSAoc3RydWN0IHJ0 ZW50cnkgKilybl9tcGF0aF9uZXh0KCAoc3RydWN0IHJhZGl4X25vZGUgKily dCkpIHsNCisJCQlpZihydC0+cnRfZmxhZ3MgJiBSVEZfVVApIHsNCisJCQkJ aWYgKHdlaWdodCA+IHJ0LT5ydF9ybXgucm14X3dlaWdodCkNCisJCQkJCXdl aWdodCA9IHJ0LT5ydF9ybXgucm14X3dlaWdodDsNCisJCQl9DQorCQl9DQor DQorCQkvKiBmaW5kIG5vdyBvbmUgbm9uIGdhdGV3YXkgcm91dGUgd2l0aCBs b3dlc3Qgd2VpZ2h0ICovDQorCQlmb3IgKCBydCA9IHJ0MDsgcnQgIT0gTlVM TDsgcnQgPSAoc3RydWN0IHJ0ZW50cnkgKilybl9tcGF0aF9uZXh0KCAoc3Ry dWN0IHJhZGl4X25vZGUgKilydCkpIHsNCisJCQlpZihydC0+cnRfZmxhZ3Mg JiBSVEZfVVApIHsNCisJCQkJaWYgKCh3ZWlnaHQgPT0gcnQtPnJ0X3JteC5y bXhfd2VpZ2h0KSAmJiAhKHJ0LT5ydF9mbGFncyAmIFJURl9HQVRFV0FZKSkg ew0KKwkJCQkJZm91bmQgPSAxOw0KKwkJCQkJYnJlYWs7DQorCQkJCX0NCisJ CQl9DQorCQl9DQorCQlpZiAoZm91bmQgPT0gMCkNCisJCQlydCA9IE5VTEw7 DQorCX0NCisJDQorI2VuZGlmCQ0KKw0KIAlpZiAocnQgPT0gTlVMTCB8fCAo IShmbGFncyAmIExMRV9QVUIpICYmDQogCQkJICAgKChydC0+cnRfZmxhZ3Mg JiBSVEZfR0FURVdBWSkgfHwgDQogCQkJICAgIChydC0+cnRfaWZwICE9IGlm cCkpKSkgew0KQEAgLTEzODYsMTEgKzE0MTksMjEgQEANCiAJCWxvZyhMT0df SU5GTywgIklQdjQgYWRkcmVzczogXCIlc1wiIGlzIG5vdCBvbiB0aGUgbmV0 d29ya1xuIiwNCiAJCSAgICBpbmV0X250b2EoKChjb25zdCBzdHJ1Y3Qgc29j a2FkZHJfaW4gKilsM2FkZHIpLT5zaW5fYWRkcikpOw0KICNlbmRpZg0KKyNp ZmRlZiBSQURJWF9NUEFUSA0KKwkJaWYgKHJ0MCAhPSBOVUxMKQ0KKwkJCVJU RlJFRV9MT0NLRUQocnQwKTsNCisjZWxzZQ0KIAkJaWYgKHJ0ICE9IE5VTEwp DQogCQkJUlRGUkVFX0xPQ0tFRChydCk7DQorI2VuZGlmDQogCQlyZXR1cm4g KEVJTlZBTCk7DQogCX0NCisjaWZkZWYgUkFESVhfTVBBVEgNCisJUlRGUkVF X0xPQ0tFRChydDApOw0KKyNlbHNlDQogCVJURlJFRV9MT0NLRUQocnQpOw0K KyNlbmRpZg0KKw0KIAlyZXR1cm4gMDsNCiB9DQogDQpkaWZmIC1yIC11IC91 c3Ivc3JjL3N5cy9uZXRpbmV0L2lwZncvaXBfZndfdGFibGUuYyAvcm91dGVy L3Vzci9zcmMvc3lzL25ldGluZXQvaXBmdy9pcF9md190YWJsZS5jDQotLS0g L3Vzci9zcmMvc3lzL25ldGluZXQvaXBmdy9pcF9md190YWJsZS5jCTIwMTAt MDMtMjMgMDk6NTg6NTkuMDAwMDAwMDAwICswMDAwDQorKysgL3JvdXRlci91 c3Ivc3JjL3N5cy9uZXRpbmV0L2lwZncvaXBfZndfdGFibGUuYwkyMDEwLTA4 LTI2IDEyOjQ3OjI3LjAwMDAwMDAwMCArMDAwMA0KQEAgLTEzNyw3ICsxMzcs NyBAQA0KIAltYXNrLnNpbl9hZGRyLnNfYWRkciA9IGh0b25sKG1sZW4gPyB+ KCgxIDw8ICgzMiAtIG1sZW4pKSAtIDEpIDogMCk7DQogCXNhLnNpbl9hZGRy LnNfYWRkciA9IGFkZHIgJiBtYXNrLnNpbl9hZGRyLnNfYWRkcjsNCiAJSVBG V19XTE9DSyhjaCk7DQotCWVudCA9IChzdHJ1Y3QgdGFibGVfZW50cnkgKily bmgtPnJuaF9kZWxhZGRyKCZzYSwgJm1hc2ssIHJuaCk7DQorCWVudCA9IChz dHJ1Y3QgdGFibGVfZW50cnkgKilybmgtPnJuaF9kZWxhZGRyKCZzYSwgJm1h c2ssIHJuaCwgTlVMTCk7DQogCWlmIChlbnQgPT0gTlVMTCkgew0KIAkJSVBG V19XVU5MT0NLKGNoKTsNCiAJCXJldHVybiAoRVNSQ0gpOw0KQEAgLTE1NCw3 ICsxNTQsNyBAQA0KIAlzdHJ1Y3QgdGFibGVfZW50cnkgKmVudDsNCiANCiAJ ZW50ID0gKHN0cnVjdCB0YWJsZV9lbnRyeSAqKQ0KLQkgICAgcm5oLT5ybmhf ZGVsYWRkcihybi0+cm5fa2V5LCBybi0+cm5fbWFzaywgcm5oKTsNCisJICAg IHJuaC0+cm5oX2RlbGFkZHIocm4tPnJuX2tleSwgcm4tPnJuX21hc2ssIHJu aCwgTlVMTCk7DQogCWlmIChlbnQgIT0gTlVMTCkNCiAJCWZyZWUoZW50LCBN X0lQRldfVEJMKTsNCiAJcmV0dXJuICgwKTsNCg== --168430090-1915796902-1282849418=:15491--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.LFD.2.00.1008262102150.15491>