From owner-freebsd-wireless@FreeBSD.ORG Mon Jan 16 19:46:47 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8EA83106566B; Mon, 16 Jan 2012 19:46:47 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 39EF48FC0C; Mon, 16 Jan 2012 19:46:46 +0000 (UTC) Received: by iagz16 with SMTP id z16so6133760iag.13 for ; Mon, 16 Jan 2012 11:46:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=xxlgzQxEdXzuzlXVR9sckiDsoyQwn2NoC38NTPA7/qc=; b=TGYqCFnG7YGkv5ZLKAPkA6pWMr+wPW7G2neBECtJMx/Zue/nNTcWLpmVmhZkoF7+Kc ZK0w9UtJFW7NAeEpkyvtGhALb8/0Y8CUreXHQTgS0NFLKOUh/oDJt4VA4LiwvC4RLzq/ cbqqbIKbZ8hmDq6y1Q0DkeAIX48nnCYql0lEE= MIME-Version: 1.0 Received: by 10.50.196.228 with SMTP id ip4mr14071673igc.28.1326743206629; Mon, 16 Jan 2012 11:46:46 -0800 (PST) Received: by 10.50.213.74 with HTTP; Mon, 16 Jan 2012 11:46:46 -0800 (PST) In-Reply-To: References: <201201112003.44891.bschmidt@freebsd.org> Date: Mon, 16 Jan 2012 20:46:46 +0100 Message-ID: From: Monthadar Al Jaberi To: Bernhard Schmidt Content-Type: multipart/mixed; boundary=bcaec554da6a8a0fac04b6aa79d8 Cc: freebsd-wireless@freebsd.org Subject: Re: 11s mesh path setup problem X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jan 2012 19:46:47 -0000 --bcaec554da6a8a0fac04b6aa79d8 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Mon, Jan 16, 2012 at 9:39 AM, Monthadar Al Jaberi wrote: > On Wed, Jan 11, 2012 at 8:03 PM, Bernhard Schmidt = wrote: >> On Wednesday 11 January 2012 18:23:29 Adrian Chadd wrote: >>> Hi! >>> >>> I've just done a bit of a code review. Here are my comments: > > sorry for late answer here is a a better formated patch. > >>> >>> * ether_sprintf() can't be implemented the way you've implemented it - >>> it just won't work at all in a multithreaded, concurrent environment. >>> We'll have to find an alternative way. >>> >>> Maybe something like: >>> >>> char * >>> ether_sprintf2(const u_char *ap, char *buf, int len) >>> { >>> =A0 =A0 .. do things to buf, rather than the static buf. >>> } >>> >>> Then maybe this'd work: >>> >>> char a[32], b[32]; >>> IEEE80211_NOTE(..., ether_sprintf2(addr1, a, 32), ether_sprintf2(addr2,= a, 32)); >>> >>> does that make sense? >> >> Isn't there an example in net80211 with %D? >> printf("%6D %6D", addr1, ":", addr2, ":"); Ok here is a patch just for fixing ieee80211_hwmp IEEE80211_NOTE function calls before my patch. does it look okej? >> >> The saner alternative is to call printf() multiple times, see ieee80211_= dump_pkt() as an example. > > But that means we have to modify for example ieee80211_note_mac function? > >> >> -- >> Bernhard > > > > -- > Monthadar Al Jaberi --=20 Monthadar Al Jaberi --bcaec554da6a8a0fac04b6aa79d8 Content-Type: text/x-patch; charset=US-ASCII; name="ieee80211_note_format.patch" Content-Disposition: attachment; filename="ieee80211_note_format.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gxhwl7b51 ZGlmZiAtLWdpdCBhL3N5cy9uZXQ4MDIxMS9pZWVlODAyMTFfaHdtcC5jIGIvc3lzL25ldDgwMjEx L2llZWU4MDIxMV9od21wLmMKaW5kZXggOTNhOWU1NS4uNzBmN2ZhNiAxMDA2NDQKLS0tIGEvc3lz L25ldDgwMjExL2llZWU4MDIxMV9od21wLmMKKysrIGIvc3lzL25ldDgwMjExL2llZWU4MDIxMV9o d21wLmMKQEAgLTMzLDE1ICszMywxNSBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CiAKIC8qCiAg KiBJRUVFIDgwMi4xMXMgSHlicmlkIFdpcmVsZXNzIE1lc2ggUHJvdG9jb2wsIEhXTVAuCi0gKiAK KyAqCiAgKiBCYXNlZCBvbiBNYXJjaCAyMDA5LCBEMy4wIDgwMi4xMXMgZHJhZnQgc3BlYy4KICAq LwogI2luY2x1ZGUgIm9wdF9pbmV0LmgiCiAjaW5jbHVkZSAib3B0X3dsYW4uaCIKIAogI2luY2x1 ZGUgPHN5cy9wYXJhbS5oPgotI2luY2x1ZGUgPHN5cy9zeXN0bS5oPiAKLSNpbmNsdWRlIDxzeXMv bWJ1Zi5oPiAgIAorI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgorI2luY2x1ZGUgPHN5cy9tYnVmLmg+ CiAjaW5jbHVkZSA8c3lzL21hbGxvYy5oPgogI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KIApAQCAt NjkyLDcgKzY5Miw3IEBAIGh3bXBfcmVjdl9wcmVxKHN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCwg c3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkJcmV0dXJuOwogCiAJSUVFRTgwMjExX05PVEUo dmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCSAgICAicmVjZWl2ZWQgUFJFUSwgc291cmNl ICVzIiwgZXRoZXJfc3ByaW50ZihwcmVxLT5wcmVxX29yaWdhZGRyKSk7CisJICAgICJyZWNlaXZl ZCBQUkVRLCBzb3VyY2UgJTZEIiwgcHJlcS0+cHJlcV9vcmlnYWRkciwgIjoiKTsKIAogCS8qCiAJ ICogQWNjZXB0YW5jZSBjcml0ZXJpYTogaWYgdGhlIFBSRVEgaXMgbm90IGZvciB1cyBhbmQKQEAg LTcxOCw4ICs3MTgsOCBAQCBod21wX3JlY3ZfcHJlcShzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAs IHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmksCiAJaWYgKEhXTVBfU0VRX0xFUShwcmVxLT5wcmVx X2lkLCBocm9yaWctPmhyX3ByZXFpZCkgJiYKIAkgICAgSFdNUF9TRVFfTEVRKHByZXEtPnByZXFf b3JpZ3NlcSwgaHJvcmlnLT5ocl9zZXEpKSB7CiAJCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgw MjExX01TR19IV01QLCBuaSwKLQkJICAgICJkaXNjYXJkIFBSRVEgZnJvbSAlcywgb2xkIHNlcSBu byAldSA8PSAldSIsCi0JCSAgICBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIpLAor CQkgICAgImRpc2NhcmQgUFJFUSBmcm9tICU2RCwgb2xkIHNlcSBubyAldSA8PSAldSIsCisJCSAg ICBwcmVxLT5wcmVxX29yaWdhZGRyLCAiOiIsCiAJCSAgICBwcmVxLT5wcmVxX29yaWdzZXEsIGhy b3JpZy0+aHJfc2VxKTsKIAkJcmV0dXJuOwogCX0KQEAgLTczMSw3ICs3MzEsNyBAQCBod21wX3Jl Y3ZfcHJlcShzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFfbm9kZSAq bmksCiAJICovCiAJaWYgKElFRUU4MDIxMV9BRERSX0VRKHZhcC0+aXZfbXlhZGRyLCBQUkVRX1RB RERSKDApKSkgewogCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmks Ci0JCSAgICAicmVwbHkgdG8gJXMiLCBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIp KTsKKwkJICAgICJyZXBseSB0byAlNkQiLCBwcmVxLT5wcmVxX29yaWdhZGRyLCAiOiIpOwogCQkv KgogCQkgKiBCdWlsZCBhbmQgc2VuZCBhIFBSRVAgZnJhbWUuCiAJCSAqLwpAQCAtNzcxLDE0ICs3 NzEsMTQgQEAgaHdtcF9yZWN2X3ByZXEoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLCBzdHJ1Y3Qg aWVlZTgwMjExX25vZGUgKm5pLAogCQkJcnQgPSBpZWVlODAyMTFfbWVzaF9ydF9hZGQodmFwLCBy b290bWFjKTsKIAkJCWlmIChydCA9PSBOVUxMKSB7CiAJCQkJSUVFRTgwMjExX05PVEUodmFwLCBJ RUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCQkJCSAgICAidW5hYmxlIHRvIGFkZCByb290IG1lc2gg cGF0aCB0byAlcyIsCi0JCQkJICAgIGV0aGVyX3NwcmludGYocm9vdG1hYykpOworCQkJCSAgICAi dW5hYmxlIHRvIGFkZCByb290IG1lc2ggcGF0aCB0byAlNkQiLAorCQkJCSAgICByb290bWFjLCAi OiIpOwogCQkJCXZhcC0+aXZfc3RhdHMuaXNfbWVzaF9ydGFkZGZhaWxlZCsrOwogCQkJCXJldHVy bjsKIAkJCX0KIAkJfQogCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwg bmksCi0JCSAgICAicm9vdCBtZXNoIHN0YXRpb24gQCAlcyIsIGV0aGVyX3NwcmludGYocm9vdG1h YykpOworCQkgICAgInJvb3QgbWVzaCBzdGF0aW9uIEAgJTZEIiwgcm9vdG1hYywgIjoiKTsKIAog CQkvKgogCQkgKiBSZXBseSB3aXRoIGEgUFJFUCBpZiB3ZSBkb24ndCBoYXZlIGEgcGF0aCB0byB0 aGUgcm9vdApAQCAtODE5LDggKzgxOSw4IEBAIGh3bXBfcmVjdl9wcmVxKHN0cnVjdCBpZWVlODAy MTF2YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkJCWlmIChwcmVxLT5wcmVx X3R0bCA+IDEgJiYKIAkJCSAgICBwcmVxLT5wcmVxX2hvcGNvdW50IDwgaHMtPmhzX21heGhvcHMp IHsKIAkJCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCQkJ ICAgICJmb3J3YXJkIFBSRVEgZnJvbSAlcyIsCi0JCQkJICAgIGV0aGVyX3NwcmludGYocHJlcS0+ cHJlcV9vcmlnYWRkcikpOworCQkJCSAgICAiZm9yd2FyZCBQUkVRIGZyb20gJTZEIiwKKwkJCQkg ICAgcHJlcS0+cHJlcV9vcmlnYWRkciwgIjoiKTsKIAkJCQkvKgogCQkJCSAqIFByb3BhZ2F0ZSB0 aGUgb3JpZ2luYWwgUFJFUS4KIAkJCQkgKi8KQEAgLTg0Nyw4ICs4NDcsOCBAQCBod21wX3JlY3Zf cHJlcShzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmks CiAJCQkJc3RydWN0IGllZWU4MDIxMV9tZXNocHJlcF9pZSBwcmVwOwogCiAJCQkJSUVFRTgwMjEx X05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCQkJCSAgICAiaW50ZXJtZWRpYXRl IHJlcGx5IGZvciBQUkVRIGZyb20gJXMiLAotCQkJCSAgICBldGhlcl9zcHJpbnRmKHByZXEtPnBy ZXFfb3JpZ2FkZHIpKTsKKwkJCQkgICAgImludGVybWVkaWF0ZSByZXBseSBmb3IgUFJFUSBmcm9t ICU2RCIsCisJCQkJICAgIHByZXEtPnByZXFfb3JpZ2FkZHIsICI6Iik7CiAJCQkJcHJlcC5wcmVw X2ZsYWdzID0gMDsKIAkJCQlwcmVwLnByZXBfaG9wY291bnQgPSBydC0+cnRfbmhvcHMgKyAxOwog CQkJCXByZXAucHJlcF90dGwgPSBtcy0+bXNfdHRsOwpAQCAtODczLDkgKzg3MywxMCBAQCBod21w X3JlY3ZfcHJlcShzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFfbm9k ZSAqbmksCiAJCQlpZiAocnQgPT0gTlVMTCkgewogCQkJCXJ0ID0gaWVlZTgwMjExX21lc2hfcnRf YWRkKHZhcCwgUFJFUV9UQUREUigwKSk7CiAJCQkJaWYgKHJ0ID09IE5VTEwpIHsKLQkJCQkJSUVF RTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsCi0JCQkJCSAgICBuaSwgInVuYWJs ZSB0byBhZGQgUFJFUSBwYXRoIHRvICVzIiwKLQkJCQkJICAgIGV0aGVyX3NwcmludGYoUFJFUV9U QUREUigwKSkpOworCQkJCQlJRUVFODAyMTFfTk9URSh2YXAsCisJCQkJCSAgICBJRUVFODAyMTFf TVNHX0hXTVAsIG5pLAorCQkJCQkgICAgInVuYWJsZSB0byBhZGQgUFJFUSBwYXRoIHRvICU2RCIs CisJCQkJCSAgICBQUkVRX1RBRERSKDApLCAiOiIpOwogCQkJCQl2YXAtPml2X3N0YXRzLmlzX21l c2hfcnRhZGRmYWlsZWQrKzsKIAkJCQkJcmV0dXJuOwogCQkJCX0KQEAgLTg4OCw4ICs4ODksOCBA QCBod21wX3JlY3ZfcHJlcShzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAy MTFfbm9kZSAqbmksCiAJCQlocm9yaWctPmhyX3ByZXFpZCA9IHByZXEtPnByZXFfaWQ7CiAKIAkJ CUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01QLCBuaSwKLQkJCSAgICAiZm9y d2FyZCBQUkVRIGZyb20gJXMiLAotCQkJICAgIGV0aGVyX3NwcmludGYocHJlcS0+cHJlcV9vcmln YWRkcikpOworCQkJICAgICJmb3J3YXJkIFBSRVEgZnJvbSAlNkQiLAorCQkJICAgIHByZXEtPnBy ZXFfb3JpZ2FkZHIsICI6Iik7CiAJCQlwcHJlcS5wcmVxX2hvcGNvdW50ICs9IDE7CiAJCQlwcHJl cS5wcmVxX3R0bCAtPSAxOwogCQkJcHByZXEucHJlcV9tZXRyaWMgKz0gbXMtPm1zX3BtZXRyaWMt Pm1wbV9tZXRyaWMobmkpOwpAQCAtOTU2LDcgKzk1Nyw3IEBAIGh3bXBfcmVjdl9wcmVwKHN0cnVj dCBpZWVlODAyMTF2YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkJcmV0dXJu OwogCiAJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCSAgICAi cmVjZWl2ZWQgUFJFUCBmcm9tICVzIiwgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX3RhcmdldGFk ZHIpKTsKKwkgICAgInJlY2VpdmVkIFBSRVAgZnJvbSAlNkQiLCBwcmVwLT5wcmVwX3RhcmdldGFk ZHIsICI6Iik7CiAKIAlydCA9IGllZWU4MDIxMV9tZXNoX3J0X2ZpbmQodmFwLCBwcmVwLT5wcmVw X3RhcmdldGFkZHIpOwogCWlmIChydCA9PSBOVUxMKSB7CkBAIC05NjcsOCArOTY4LDggQEAgaHdt cF9yZWN2X3ByZXAoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLCBzdHJ1Y3QgaWVlZTgwMjExX25v ZGUgKm5pLAogCQkJcnQgPSBpZWVlODAyMTFfbWVzaF9ydF9hZGQodmFwLCBwcmVwLT5wcmVwX3Rh cmdldGFkZHIpOwogCQkJaWYgKHJ0ID09IE5VTEwpIHsKIAkJCQlJRUVFODAyMTFfTk9URSh2YXAs IElFRUU4MDIxMV9NU0dfSFdNUCwKLQkJCQkgICAgbmksICJ1bmFibGUgdG8gYWRkIFBSRVAgcGF0 aCB0byAlcyIsCi0JCQkJICAgIGV0aGVyX3NwcmludGYocHJlcC0+cHJlcF90YXJnZXRhZGRyKSk7 CisJCQkJICAgIG5pLCAidW5hYmxlIHRvIGFkZCBQUkVQIHBhdGggdG8gJTZEIiwKKwkJCQkgICAg cHJlcC0+cHJlcF90YXJnZXRhZGRyLCAiOiIpOwogCQkJCXZhcC0+aXZfc3RhdHMuaXNfbWVzaF9y dGFkZGZhaWxlZCsrOwogCQkJCXJldHVybjsKIAkJCX0KQEAgLTk5MSw4ICs5OTIsOCBAQCBod21w X3JlY3ZfcHJlcChzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFfbm9k ZSAqbmksCiAJaHIgPSBJRUVFODAyMTFfTUVTSF9ST1VURV9QUklWKHJ0LCBzdHJ1Y3QgaWVlZTgw MjExX2h3bXBfcm91dGUpOwogCWlmIChIV01QX1NFUV9MRVEocHJlcC0+cHJlcF90YXJnZXRzZXEs IGhyLT5ocl9zZXEpKSB7CiAJCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01Q LCBuaSwKLQkJICAgICJkaXNjYXJkIFBSRVAgZnJvbSAlcywgb2xkIHNlcSBubyAldSA8PSAldSIs Ci0JCSAgICBldGhlcl9zcHJpbnRmKHByZXAtPnByZXBfdGFyZ2V0YWRkciksCisJCSAgICAiZGlz Y2FyZCBQUkVQIGZyb20gJTZELCBvbGQgc2VxIG5vICV1IDw9ICV1IiwKKwkJICAgIHByZXAtPnBy ZXBfdGFyZ2V0YWRkciwgIjoiLAogCQkgICAgcHJlcC0+cHJlcF90YXJnZXRzZXEsIGhyLT5ocl9z ZXEpOwogCQlyZXR1cm47CiAJfQpAQCAtMTAwNSw4ICsxMDA2LDggQEAgaHdtcF9yZWN2X3ByZXAo c3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogCQlz dHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVwX2llIHBwcmVwOyAvKiBwcm9wYWdhdGVkIFBSRVAgKi8K IAogCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCSAgICAi cHJvcGFnYXRlIFBSRVAgZnJvbSAlcyIsCi0JCSAgICBldGhlcl9zcHJpbnRmKHByZXAtPnByZXBf dGFyZ2V0YWRkcikpOworCQkgICAgInByb3BhZ2F0ZSBQUkVQIGZyb20gJTZEIiwKKwkJICAgIHBy ZXAtPnByZXBfdGFyZ2V0YWRkciwgIjoiKTsKIAogCQltZW1jcHkoJnBwcmVwLCBwcmVwLCBzaXpl b2YocHByZXApKTsKIAkJcHByZXAucHJlcF9ob3Bjb3VudCArPSAxOwpAQCAtMTAxOSw4ICsxMDIw LDggQEAgaHdtcF9yZWN2X3ByZXAoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLCBzdHJ1Y3QgaWVl ZTgwMjExX25vZGUgKm5pLAogCWlmIChydC0+cnRfZmxhZ3MgJiBJRUVFODAyMTFfTUVTSFJUX0ZM QUdTX1BST1hZKSB7CiAJCS8qIE5COiBuZXZlciBjbG9iYmVyIGEgcHJveHkgZW50cnkgKi87CiAJ CUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01QLCBuaSwKLQkJICAgICJkaXNj YXJkIFBSRVAgZm9yICVzLCByb3V0ZSBpcyBtYXJrZWQgUFJPWFkiLAotCQkgICAgZXRoZXJfc3By aW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpKTsKKwkJICAgICJkaXNjYXJkIFBSRVAgZm9yICU2 RCwgcm91dGUgaXMgbWFya2VkIFBST1hZIiwKKwkJICAgIHByZXAtPnByZXBfdGFyZ2V0YWRkciwg IjoiKTsKIAkJdmFwLT5pdl9zdGF0cy5pc19od21wX3Byb3h5Kys7CiAJfSBlbHNlIGlmIChwcmVw LT5wcmVwX29yaWdzZXEgPT0gaHItPmhyX29yaWdzZXEpIHsKIAkJLyoKQEAgLTEwMzIsMTAgKzEw MzMsMTAgQEAgaHdtcF9yZWN2X3ByZXAoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLCBzdHJ1Y3Qg aWVlZTgwMjExX25vZGUgKm5pLAogCQkgICAgKHByZXAtPnByZXBfaG9wY291bnQgPCBydC0+cnRf bmhvcHMgfHwKIAkJICAgICBwcmVwLT5wcmVwX21ldHJpYyA8IHJ0LT5ydF9tZXRyaWMpKSB7CiAJ CQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCQkgICAgIiVz IHBhdGggdG8gJXMsIGhvcGNvdW50ICVkOiVkIG1ldHJpYyAlZDolZCIsCisJCQkgICAgIiVzIHBh dGggdG8gJTZELCBob3Bjb3VudCAlZDolZCBtZXRyaWMgJWQ6JWQiLAogCQkJICAgIHJ0LT5ydF9m bGFncyAmIElFRUU4MDIxMV9NRVNIUlRfRkxBR1NfVkFMSUQgPwogCQkJCSJwcmVmZXIiIDogInVw ZGF0ZSIsCi0JCQkgICAgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX29yaWdhZGRyKSwKKwkJCSAg ICBwcmVwLT5wcmVwX29yaWdhZGRyLCAiOiIsCiAJCQkgICAgcnQtPnJ0X25ob3BzLCBwcmVwLT5w cmVwX2hvcGNvdW50LAogCQkJICAgIHJ0LT5ydF9tZXRyaWMsIHByZXAtPnByZXBfbWV0cmljKTsK IAkJCUlFRUU4MDIxMV9BRERSX0NPUFkocnQtPnJ0X25leHRob3AsIHdoLT5pX2FkZHIyKTsKQEAg LTEwNDUsOCArMTA0Niw4IEBAIGh3bXBfcmVjdl9wcmVwKHN0cnVjdCBpZWVlODAyMTF2YXAgKnZh cCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkJCXJ0LT5ydF9mbGFncyB8PSBJRUVFODAy MTFfTUVTSFJUX0ZMQUdTX1ZBTElEOwogCQl9IGVsc2UgewogCQkJSUVFRTgwMjExX05PVEUodmFw LCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCQkJICAgICJpZ25vcmUgUFJFUCBmb3IgJXMsIGhv cGNvdW50ICVkOiVkIG1ldHJpYyAlZDolZCIsCi0JCQkgICAgZXRoZXJfc3ByaW50ZihwcmVwLT5w cmVwX3RhcmdldGFkZHIpLAorCQkJICAgICJpZ25vcmUgUFJFUCBmb3IgJTZELCBob3Bjb3VudCAl ZDolZCBtZXRyaWMgJWQ6JWQiLAorCQkJICAgIHByZXAtPnByZXBfdGFyZ2V0YWRkciwgIjoiLAog CQkJICAgIHJ0LT5ydF9uaG9wcywgcHJlcC0+cHJlcF9ob3Bjb3VudCwKIAkJCSAgICBydC0+cnRf bWV0cmljLCBwcmVwLT5wcmVwX21ldHJpYyk7CiAJCX0KQEAgLTExNzksNyArMTE4MCw3IEBAIGh3 bXBfcmVjdl9wZXJyKHN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9u b2RlICpuaSwKIAkgKi8KIAlpZiAoZm9yd2FyZCAmJiBwZXJyLT5wZXJyX3R0bCA+IDEpIHsKIAkJ SUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCQkgICAgInByb3Bh Z2F0ZSBQRVJSIGZyb20gJXMiLCBldGhlcl9zcHJpbnRmKHdoLT5pX2FkZHIyKSk7CisJCSAgICAi cHJvcGFnYXRlIFBFUlIgZnJvbSAlNkQiLCB3aC0+aV9hZGRyMiwgIjoiKTsKIAkJbWVtY3B5KCZw cGVyciwgcGVyciwgc2l6ZW9mKCpwZXJyKSk7CiAJCXBwZXJyLnBlcnJfdHRsLS07CiAJCWh3bXBf c2VuZF9wZXJyKHZhcC0+aXZfYnNzLCB2YXAtPml2X215YWRkciwgYnJvYWRjYXN0YWRkciwKQEAg LTEzMDYsOCArMTMwNyw4IEBAIGh3bXBfZGlzY292ZXIoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFw LAogCQkJcnQgPSBpZWVlODAyMTFfbWVzaF9ydF9hZGQodmFwLCBkZXN0KTsKIAkJCWlmIChydCA9 PSBOVUxMKSB7CiAJCQkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsCi0J CQkJICAgIG5pLCAidW5hYmxlIHRvIGFkZCBkaXNjb3ZlcnkgcGF0aCB0byAlcyIsCi0JCQkJICAg IGV0aGVyX3NwcmludGYoZGVzdCkpOworCQkJCSAgICBuaSwgInVuYWJsZSB0byBhZGQgZGlzY292 ZXJ5IHBhdGggdG8gJTZEIiwKKwkJCQkgICAgZGVzdCwgIjoiKTsKIAkJCQl2YXAtPml2X3N0YXRz LmlzX21lc2hfcnRhZGRmYWlsZWQrKzsKIAkJCQlnb3RvIGRvbmU7CiAJCQl9Cg== --bcaec554da6a8a0fac04b6aa79d8--