Date: Mon, 9 Dec 2013 22:44:14 +0800 From: Howard Su <howard0su@gmail.com> To: freebsd-arm <freebsd-arm@freebsd.org> Subject: Re: [PATCH] Add stack unwind support for the functions in .ko Message-ID: <CAAvnz_p2vw9=HWbGPePKm_yDxM-bM1h6VaQBeJq9sYXPRb2-Lg@mail.gmail.com> In-Reply-To: <CAAvnz_pWZqw-HEB-GTJ_CkErjXrz3v7ozabMXE__vr=SfkBVSg@mail.gmail.com> References: <CAAvnz_pWZqw-HEB-GTJ_CkErjXrz3v7ozabMXE__vr=SfkBVSg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--047d7b60457ea31a1d04ed1b07e0 Content-Type: text/plain; charset=ISO-8859-1 Here is a new version which solve the unreadable $a problem. (the fix is in ddb/db_main.c in the end of the patch.) I attached the diff for review. Howard On Saturday, December 7, 2013, Howard Su wrote: > I need this function when working on dtrace/arm support. the basic idea is > locate the ARM.EXIDX section by the symbol __exidx_start and __exidx_stop. > > To keep it simple, I always look through the link_file_list when unwind > the stack. From the testing, the performance seems ok. > > Also, I implement the count parameter when unwind the stack which can make > 'show threads' output more readable. I also disabled some print output by > #if 0 which makes output more align with the other platform. > > Please review. > > Thanks, > > Howard Su > > > -- -Howard --047d7b60457ea31a1d04ed1b07e0 Content-Type: text/x-patch; charset=US-ASCII; name="unwind.2.patch" Content-Disposition: attachment; filename="unwind.2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 28885608c4f0bc6a_0.1 ZGlmZiAtLWdpdCBhL3N5cy9hcm0vYXJtL2RiX3RyYWNlLmMgYi9zeXMvYXJtL2FybS9kYl90cmFj ZS5jCmluZGV4IDU3MTE5ZGEuLjExOTQxMmMgMTAwNjQ0Ci0tLSBhL3N5cy9hcm0vYXJtL2RiX3Ry YWNlLmMKKysrIGIvc3lzL2FybS9hcm0vZGJfdHJhY2UuYwpAQCAtMzgsNiArMzgsNyBAQCBfX0ZC U0RJRCgiJEZyZWVCU0QkIik7CiAjaW5jbHVkZSA8c3lzL3Byb2MuaD4KICNpbmNsdWRlIDxzeXMv a2RiLmg+CiAjaW5jbHVkZSA8c3lzL3N0YWNrLmg+CisjaW5jbHVkZSA8c3lzL2xpbmtlci5oPgog I2luY2x1ZGUgPG1hY2hpbmUvYXJtcmVnLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9hc20uaD4KICNp bmNsdWRlIDxtYWNoaW5lL2NwdWZ1bmMuaD4KQEAgLTc5LDEyICs4MCw2IEBAIF9fRkJTRElEKCIk RnJlZUJTRCQiKTsKICNkZWZpbmUJUEMJMTUKIAogLyoKLSAqIFRoZXNlIGFyZSBzZXQgaW4gdGhl IGxpbmtlciBzY3JpcHQuIFRoZWlyIGFkZHJlc3NlcyB3aWxsIGJlCi0gKiBlaXRoZXIgdGhlIHN0 YXJ0IG9yIGVuZCBvZiB0aGUgZXhjZXB0aW9uIHRhYmxlIG9yIGluZGV4LgotICovCi1leHRlcm4g aW50IGV4dGFiX3N0YXJ0LCBleHRhYl9lbmQsIGV4aWR4X3N0YXJ0LCBleGlkeF9lbmQ7Ci0KLS8q CiAgKiBFbnRyeSB0eXBlcy4KICAqIFRoZXNlIGFyZSB0aGUgb25seSBlbnRyeSB0eXBlcyB0aGF0 IGhhdmUgYmVlbiBzZWVuIGluIHRoZSBrZXJuZWwuCiAgKi8KQEAgLTEzMSw4ICsxMjYsMzAgQEAg c3RydWN0IHVud2luZF9zdGF0ZSB7CiBzdGF0aWMgX19pbmxpbmUgaW50MzJfdAogZGJfZXhwYW5k X3ByZWwzMSh1aW50MzJfdCBwcmVsMzEpCiB7CisJcmV0dXJuICgoaW50MzJfdCkocHJlbDMxKSA8 PCAxKSAvIDI7Cit9CisKK3N0cnVjdCBkYl9maW5kX2luZGV4X2NvbnRleHRfdAoreworCWludCB2 YWxpZDsKKwljYWRkcl90IGFkZHI7CisJY2FkZHJfdCBleGlkeF9zdGFydCwgZXhpZHhfZW5kOwor fTsKIAotCXJldHVybiAoKGludDMyX3QpKHByZWwzMSAmIDB4N2ZmZmZmZmZ1KSA8PCAxKSAvIDI7 CitzdGF0aWMgaW50CitkYl9maW5kX2luZGV4X2ZpbGVfY2IobGlua2VyX2ZpbGVfdCBsZiwgdm9p ZCogYXJnKQoreworCXN0cnVjdCBkYl9maW5kX2luZGV4X2NvbnRleHRfdCAqY29udGV4dCA9IChz dHJ1Y3QgZGJfZmluZF9pbmRleF9jb250ZXh0X3QqKWFyZzsKKwlpZiAoY29udGV4dC0+YWRkciA+ PSBsZi0+YWRkcmVzcyAmJiBjb250ZXh0LT5hZGRyIDwgbGYtPmFkZHJlc3MgKyBsZi0+c2l6ZSkK Kwl7CisJCWNvbnRleHQtPmV4aWR4X3N0YXJ0ID0gbGlua2VyX2ZpbGVfbG9va3VwX3N5bWJvbChs ZiwgIl9fZXhpZHhfc3RhcnQiLCAwKTsKKwkJY29udGV4dC0+ZXhpZHhfZW5kID0gbGlua2VyX2Zp bGVfbG9va3VwX3N5bWJvbChsZiwgIl9fZXhpZHhfZW5kIiwgMCk7CisJCWlmIChjb250ZXh0LT5l eGlkeF9zdGFydCAmJiBjb250ZXh0LT5leGlkeF9lbmQpCisJCQljb250ZXh0LT52YWxpZCA9IDE7 CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOwogfQogCiAvKgpAQCAtMTQ4LDEwICsxNjUs MTggQEAgZGJfZmluZF9pbmRleCh1aW50MzJfdCBhZGRyKQogCWludDMyX3QgcHJlbDMxX2FkZHI7 CiAJdWludDMyX3QgZnVuY19hZGRyOwogCi0Jc3RhcnQgPSAoc3RydWN0IHVud2luZF9pZHggKikm ZXhpZHhfc3RhcnQ7CisJc3RydWN0IGRiX2ZpbmRfaW5kZXhfY29udGV4dF90IGNvbnRleHQ7CisJ Y29udGV4dC52YWxpZCA9IDA7CisJY29udGV4dC5hZGRyID0gKGNhZGRyX3QpYWRkcjsKKworCWxp bmtlcl9maWxlX2ZvcmVhY2goZGJfZmluZF9pbmRleF9maWxlX2NiLCAmY29udGV4dCk7CisJaWYg KCFjb250ZXh0LnZhbGlkKQorCQlyZXR1cm4gMDsKKworCXN0YXJ0ID0gKHN0cnVjdCB1bndpbmRf aWR4ICopY29udGV4dC5leGlkeF9zdGFydDsKIAogCW1pbiA9IDA7Ci0JbWF4ID0gKCZleGlkeF9l bmQgLSAmZXhpZHhfc3RhcnQpIC8gMjsKKwltYXggPSAoY29udGV4dC5leGlkeF9lbmQgLSBjb250 ZXh0LmV4aWR4X3N0YXJ0KSAvIDI7CiAKIAl3aGlsZSAobWluICE9IG1heCkgewogCQltaWQgPSBt aW4gKyAobWF4IC0gbWluICsgMSkgLyAyOwpAQCAtMjY5LDcgKzI5NCw3IEBAIGRiX3Vud2luZF9l eGVjX2luc24oc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiAJCS8qIFN0b3AgcHJvY2Vzc2lu ZyAqLwogCQlzdGF0ZS0+ZW50cmllcyA9IDA7CiAKLQl9IGVsc2UgaWYgKChpbnNuID09IElOU05f UE9QX1JFR1MpKSB7CisJfSBlbHNlIGlmIChpbnNuID09IElOU05fUE9QX1JFR1MpIHsKIAkJdW5z aWduZWQgaW50IG1hc2ssIHJlZzsKIAogCQltYXNrID0gZGJfdW53aW5kX2V4ZWNfcmVhZF9ieXRl KHN0YXRlKTsKQEAgLTMwOCw3ICszMzMsNyBAQCBkYl91bndpbmRfZXhlY19pbnNuKHN0cnVjdCB1 bndpbmRfc3RhdGUgKnN0YXRlKQogI2lmIDAKIAlkYl9wcmludGYoImZwID0gJTA4eCwgc3AgPSAl MDh4LCBsciA9ICUwOHgsIHBjID0gJTA4eFxuIiwKIAkgICAgc3RhdGUtPnJlZ2lzdGVyc1tGUF0s IHN0YXRlLT5yZWdpc3RlcnNbU1BdLCBzdGF0ZS0+cmVnaXN0ZXJzW0xSXSwKLQkgICAgc3RhdGUt PnJlZ2lzdGVyc1tQQ10pOworCSAgICBzdGF0ZS0+cmVnaXN0ZXJzW1BDXT9zdGF0ZS0+cmVnaXN0 ZXJzW1BDXTpzdGF0ZS0+c3RhcnRfcGMpOwogI2VuZGlmCiAKIAlyZXR1cm4gMDsKQEAgLTM1Miwz MCArMzc3LDMwIEBAIGRiX3Vud2luZF90YWIoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiB9 CiAKIHN0YXRpYyB2b2lkCi1kYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAq c3RhdGUpCitkYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUsIGlu dCBjb3VudCkKIHsKIAlzdHJ1Y3QgdW53aW5kX2lkeCAqaW5kZXg7CiAJY29uc3QgY2hhciAqbmFt ZTsKIAlkYl9leHByX3QgdmFsdWU7CiAJZGJfZXhwcl90IG9mZnNldDsKIAljX2RiX3N5bV90IHN5 bTsKKyNpZiAwCiAJdV9pbnQgcmVnLCBpOwogCWNoYXIgKnNlcDsKIAl1aW50MTZfdCB1cGRfbWFz azsKKyNlbmRpZgkKIAlib29sIGZpbmlzaGVkOwogCiAJZmluaXNoZWQgPSBmYWxzZTsKLQl3aGls ZSAoIWZpbmlzaGVkKSB7CisJc3RhdGUtPnN0YXJ0X3BjID0gc3RhdGUtPnJlZ2lzdGVyc1tQQ107 CisJd2hpbGUgKCFmaW5pc2hlZCAmJiBjb3VudC0tKSB7CiAJCS8qIFJlc2V0IHRoZSBtYXNrIG9m IHVwZGF0ZWQgcmVnaXN0ZXJzICovCiAJCXN0YXRlLT51cGRhdGVfbWFzayA9IDA7CiAKLQkJLyog VGhlIHBjIHZhbHVlIGlzIGNvcnJlY3QgYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4sIHNhdmUgaXQg Ki8KLQkJc3RhdGUtPnN0YXJ0X3BjID0gc3RhdGUtPnJlZ2lzdGVyc1tQQ107Ci0KIAkJLyogRmlu ZCB0aGUgaXRlbSB0byBydW4gKi8KIAkJaW5kZXggPSBkYl9maW5kX2luZGV4KHN0YXRlLT5zdGFy dF9wYyk7CiAKLQkJaWYgKGluZGV4LT5pbnNuICE9IEVYSURYX0NBTlRVTldJTkQpIHsKKwkJaWYg KGluZGV4ICYmIGluZGV4LT5pbnNuICE9IEVYSURYX0NBTlRVTldJTkQpIHsKIAkJCWlmIChpbmRl eC0+aW5zbiAmICgxVSA8PCAzMSkpIHsKIAkJCQkvKiBUaGUgZGF0YSBpcyB3aXRoaW4gdGhlIGlu c3RydWN0aW9uICovCiAJCQkJc3RhdGUtPmluc24gPSAmaW5kZXgtPmluc247CkBAIC0zOTYsMTYg KzQyMSwxNyBAQCBkYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUp CiAJCQluYW1lID0gIihudWxsKSI7CiAJCX0gZWxzZQogCQkJZGJfc3ltYm9sX3ZhbHVlcyhzeW0s ICZuYW1lLCAmdmFsdWUpOworCiAJCWRiX3ByaW50ZigiJXMoKSBhdCAiLCBuYW1lKTsKIAkJZGJf cHJpbnRzeW0oc3RhdGUtPnN0YXJ0X3BjLCBEQl9TVEdZX1BST0MpOwogCQlkYl9wcmludGYoIlxu Iik7CisjaWYgMAogCQlkYl9wcmludGYoIlx0IHBjID0gMHglMDh4ICBsciA9IDB4JTA4eCAoIiwg c3RhdGUtPnN0YXJ0X3BjLAogCQkgICAgc3RhdGUtPnJlZ2lzdGVyc1tMUl0pOwogCQlkYl9wcmlu dHN5bShzdGF0ZS0+cmVnaXN0ZXJzW0xSXSwgREJfU1RHWV9QUk9DKTsKIAkJZGJfcHJpbnRmKCIp XG4iKTsKIAkJZGJfcHJpbnRmKCJcdCBzcCA9IDB4JTA4eCAgZnAgPSAweCUwOHgiLAogCQkgICAg c3RhdGUtPnJlZ2lzdGVyc1tTUF0sIHN0YXRlLT5yZWdpc3RlcnNbRlBdKTsKLQogCQkvKiBEb24n dCBwcmludCB0aGUgcmVnaXN0ZXJzIHdlIGhhdmUgYWxyZWFkeSBwcmludGVkICovCiAJCXVwZF9t YXNrID0gc3RhdGUtPnVwZGF0ZV9tYXNrICYgCiAJCSAgICB+KCgxIDw8IFNQKSB8ICgxIDw8IEZQ KSB8ICgxIDw8IExSKSB8ICgxIDw8IFBDKSk7CkBAIC00MjUsNiArNDUxLDkgQEAgZGJfc3RhY2tf dHJhY2VfY21kKHN0cnVjdCB1bndpbmRfc3RhdGUgKnN0YXRlKQogCQkJfQogCQl9CiAJCWRiX3By aW50ZigiXG4iKTsKKyNlbmRpZgorCQkvKiBUaGUgcGMgdmFsdWUgaXMgY29ycmVjdCBhbmQgd2ls bCBiZSBvdmVyd3JpdHRlbiwgc2F2ZSBpdCAqLworCQlzdGF0ZS0+c3RhcnRfcGMgPSBzdGF0ZS0+ cmVnaXN0ZXJzW1BDXTsKIAogCQkvKgogCQkgKiBTdG9wIGlmIGRpcmVjdGVkIHRvIGRvIHNvLCBv ciBpZiB3ZSd2ZSB1bndvdW5kIGJhY2sgdG8gdGhlCkBAIC00MzUsMTQgKzQ2NCwxNyBAQCBkYl9z dGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiAJCSAqIHRoZSBsYXN0 IGZyYW1lIHByaW50ZWQgYmVmb3JlIHlvdSBzZWUgdGhlIHVud2luZCBmYWlsdXJlCiAJCSAqIG1l c3NhZ2UgKG1heWJlIGl0IG5lZWRzIGEgU1RPUF9VTldJTkRJTkcpLgogCQkgKi8KLQkJaWYgKGlu ZGV4LT5pbnNuID09IEVYSURYX0NBTlRVTldJTkQpIHsKLQkJCWRiX3ByaW50ZigiVW5hYmxlIHRv IHVud2luZCBmdXJ0aGVyXG4iKTsKKwkJaWYgKGluZGV4ICYmIGluZGV4LT5pbnNuID09IEVYSURY X0NBTlRVTldJTkQpIHsKKwkJCWlmIChjb3VudCkKKwkJCQlkYl9wcmludGYoIlVuYWJsZSB0byB1 bndpbmQgZnVydGhlclxuIik7CiAJCQlmaW5pc2hlZCA9IHRydWU7CiAJCX0gZWxzZSBpZiAoc3Rh dGUtPnJlZ2lzdGVyc1tQQ10gPCBWTV9NSU5fS0VSTkVMX0FERFJFU1MpIHsKLQkJCWRiX3ByaW50 ZigiVW5hYmxlIHRvIHVud2luZCBpbnRvIHVzZXIgbW9kZVxuIik7CisJCQlpZiAoY291bnQpCisJ CQkJZGJfcHJpbnRmKCJVbmFibGUgdG8gdW53aW5kIGludG8gdXNlciBtb2RlXG4iKTsKIAkJCWZp bmlzaGVkID0gdHJ1ZTsKIAkJfSBlbHNlIGlmIChzdGF0ZS0+dXBkYXRlX21hc2sgPT0gMCkgewot CQkJZGJfcHJpbnRmKCJVbndpbmQgZmFpbHVyZSAobm8gcmVnaXN0ZXJzIGNoYW5nZWQpXG4iKTsK KwkJCWlmIChjb3VudCkKKwkJCQlkYl9wcmludGYoIlVud2luZCBmYWlsdXJlIChubyByZWdpc3Rl cnMgY2hhbmdlZClcbiIpOwogCQkJZmluaXNoZWQgPSB0cnVlOwogCQl9CiAJfQpAQCAtNDc5LDcg KzUxMSw3IEBAIGRiX3N0YWNrX3RyYWNlX2NtZChzdHJ1Y3QgdW53aW5kX3N0YXRlICpzdGF0ZSkK IAogI2lmbmRlZiBfX0FSTV9FQUJJX18JLyogVGhlIGZyYW1lIGZvcm1hdCBpcyBkaWZmZXJlbmQg aW4gQUFQQ1MgKi8KIHN0YXRpYyB2b2lkCi1kYl9zdGFja190cmFjZV9jbWQoZGJfZXhwcl90IGFk ZHIsIGRiX2V4cHJfdCBjb3VudCwgYm9vbGVhbl90IGtlcm5lbF9vbmx5KQorZGJfc3RhY2tfdHJh Y2VfY21kKGRiX2V4cHJfdCBhZGRyLCBpbnQgY291bnQsIGJvb2xlYW5fdCBrZXJuZWxfb25seSkK IHsKIAl1X2ludDMyX3QJKmZyYW1lLCAqbGFzdGZyYW1lOwogCWNfZGJfc3ltX3Qgc3ltOwpAQCAt NjA4LDkgKzY0MCw5IEBAIGRiX3RyYWNlX3RocmVhZChzdHJ1Y3QgdGhyZWFkICp0aHIsIGludCBj b3VudCkKIAkJc3RhdGUucmVnaXN0ZXJzW0xSXSA9IGN0eC0+dW5fMzIucGNiMzJfbHI7CiAJCXN0 YXRlLnJlZ2lzdGVyc1tQQ10gPSBjdHgtPnVuXzMyLnBjYjMyX3BjOwogCi0JCWRiX3N0YWNrX3Ry YWNlX2NtZCgmc3RhdGUpOworCQlkYl9zdGFja190cmFjZV9jbWQoJnN0YXRlLCBjb3VudCk7CiAj ZWxzZQotCQlkYl9zdGFja190cmFjZV9jbWQoY3R4LT51bl8zMi5wY2IzMl9yMTEsIC0xLCBUUlVF KTsKKwkJZGJfc3RhY2tfdHJhY2VfY21kKGN0eC0+dW5fMzIucGNiMzJfcjExLCBjb3VudCwgVFJV RSk7CiAjZW5kaWYKIAl9IGVsc2UKIAkJZGJfdHJhY2Vfc2VsZigpOwpAQCAtNjMyLDcgKzY2NCw3 IEBAIGRiX3RyYWNlX3NlbGYodm9pZCkKIAlzdGF0ZS5yZWdpc3RlcnNbTFJdID0gKHVpbnQzMl90 KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKTsKIAlzdGF0ZS5yZWdpc3RlcnNbUENdID0gKHVp bnQzMl90KWRiX3RyYWNlX3NlbGY7CiAKLQlkYl9zdGFja190cmFjZV9jbWQoJnN0YXRlKTsKKwlk Yl9zdGFja190cmFjZV9jbWQoJnN0YXRlLCAtMSk7CiAjZWxzZQogCWRiX2FkZHJfdCBhZGRyOwog CmRpZmYgLS1naXQgYS9zeXMvY29uZi9rbW9kLm1rIGIvc3lzL2NvbmYva21vZC5tawppbmRleCBi ZDA1ODc4Li5kMGExZjBmIDEwMDY0NAotLS0gYS9zeXMvY29uZi9rbW9kLm1rCisrKyBiL3N5cy9j b25mL2ttb2QubWsKQEAgLTEzMyw2ICsxMzMsMTYgQEAgQ0ZMQUdTKz0JLW1sb25nY2FsbCAtZm5v LW9taXQtZnJhbWUtcG9pbnRlcgogQ0ZMQUdTKz0JLUcwIC1mbm8tcGljIC1tbm8tYWJpY2FsbHMg LW1sb25nLWNhbGxzCiAuZW5kaWYKIAorLmlmICR7TUFDSElORV9DUFVBUkNIfSA9PSBhcm0KKy5p ZiAhZGVmaW5lZChXSVRIT1VUX0FSTV9FQUJJKQorQ0ZMQUdTKz0gICAgICAgLWZ1bndpbmQtdGFi bGVzCisuaWYgJHtDT01QSUxFUl9UWVBFfSA9PSAiY2xhbmciCisjIGNsYW5nIHJlcXVpcmVzIHVz IHRvIHRlbGwgaXQgdG8gZW1pdCBhc3NlbWJseSB3aXRoIHVud2luZCBpbmZvcm1hdGlvbgorQ0ZM QUdTKz0gICAgICAgLW1sbHZtIC1hcm0tZW5hYmxlLWVoYWJpCisuZW5kaWYKKy5lbmRpZgorLmVu ZGlmCisKIC5pZiBkZWZpbmVkKERFQlVHKSB8fCBkZWZpbmVkKERFQlVHX0ZMQUdTKQogQ1RGRkxB R1MrPQktZwogLmVuZGlmCmRpZmYgLS1naXQgYS9zeXMvY29uZi9sZHNjcmlwdC5hcm0gYi9zeXMv Y29uZi9sZHNjcmlwdC5hcm0KaW5kZXggMGQxYzdlZS4uMjQ4MmNlNyAxMDA2NDQKLS0tIGEvc3lz L2NvbmYvbGRzY3JpcHQuYXJtCisrKyBiL3N5cy9jb25mL2xkc2NyaXB0LmFybQpAQCAtNTcsMTcg KzU3LDExIEBAIFNFQ1RJT05TCiAgIC5wbHQgICAgICA6IHsgKigucGx0KQl9CiAKICAgLiA9IEFM SUdOKDQpOwotICBfZXh0YWJfc3RhcnQgPSAuOwotICBQUk9WSURFKGV4dGFiX3N0YXJ0ID0gLik7 CiAgIC5BUk0uZXh0YWIgOiB7ICooLkFSTS5leHRhYikgfQotICBfZXh0YWIuZW5kID0gLjsKLSAg UFJPVklERShleHRhYl9lbmQgPSAuKTsKIAotICBfZXhpZHhfc3RhcnQgPSAuOwotICBQUk9WSURF KGV4aWR4X3N0YXJ0ID0gLik7CisgIF9fZXhpZHhfc3RhcnQgPSAuOwogICAuQVJNLmV4aWR4IDog eyAqKC5BUk0uZXhpZHgpIH0KLSAgX2V4aWR4X2VuZCA9IC47Ci0gIFBST1ZJREUoZXhpZHhfZW5k ID0gLik7CisgIF9fZXhpZHhfZW5kID0gLjsKIAogICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9y IHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgICB0aGUgc2Ft ZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KZGlmZiAt LWdpdCBhL3N5cy9kZGIvZGJfbWFpbi5jIGIvc3lzL2RkYi9kYl9tYWluLmMKaW5kZXggNmU5Mjg2 Yy4uZjY0YjJlMiAxMDA2NDQKLS0tIGEvc3lzL2RkYi9kYl9tYWluLmMKKysrIGIvc3lzL2RkYi9k Yl9tYWluLmMKQEAgLTg2LDYgKzg2LDI0IEBAIFhfZGJfbG9va3VwKGRiX3N5bXRhYl90ICpzeW10 YWIsIGNvbnN0IGNoYXIgKnN5bWJvbCkKIAlyZXR1cm4gKE5VTEwpOwogfQogCisvKgorICogY2hl Y2sgaWYgdGhlIG5hbWUgaXMgdmFsaWQuCisgKiBpbnZsaWFkIHRoZSBuYW1lICRhLCRkLCV0IGdl bmVyYXRlZCBieSBFTEYgQVJNIHRvb2xjaGFpbgorICovCitzdGF0aWMgaW50CitkYl9pc192YWxp ZF9uYW1lKGNvbnN0IGNoYXIqIG5hbWUpCit7CisJaWYgKG5hbWUgPT0gTlVMTCB8fCBuYW1lWzBd ID09ICdcMCcpCisJCXJldHVybiAwOworCWlmIChuYW1lWzBdID09ICckJyAmJiBzdHJjaHIoImF0 ZCIsIG5hbWVbMV0pIAorCQkmJiBuYW1lWzJdID09ICdcMCcpCisJeworCQlyZXR1cm4gMDsKKwl9 CisKKwlyZXR1cm4gMTsKK30KKwogY19kYl9zeW1fdAogWF9kYl9zZWFyY2hfc3ltYm9sKGRiX3N5 bXRhYl90ICpzeW10YWIsIGRiX2FkZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQsCiAgICAg ZGJfZXhwcl90ICpkaWZmcCkKQEAgLTkzLDExICsxMTEsMTYgQEAgWF9kYl9zZWFyY2hfc3ltYm9s KGRiX3N5bXRhYl90ICpzeW10YWIsIGRiX2FkZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQs CiAJY19saW5rZXJfc3ltX3QgbHN5bTsKIAlFbGZfU3ltICpzeW0sICptYXRjaDsKIAl1bnNpZ25l ZCBsb25nIGRpZmY7CisJY29uc3QgY2hhciogbmFtZTsKIAogCWlmIChzeW10YWItPnByaXZhdGUg PT0gTlVMTCkgewogCQlpZiAoIWxpbmtlcl9kZGJfc2VhcmNoX3N5bWJvbCgoY2FkZHJfdClvZmYs ICZsc3ltLCAmZGlmZikpIHsKLQkJCSpkaWZmcCA9IChkYl9leHByX3QpZGlmZjsKLQkJCXJldHVy biAoKGNfZGJfc3ltX3QpbHN5bSk7CisJCQlYX2RiX3N5bWJvbF92YWx1ZXMoc3ltdGFiLCAoY19k Yl9zeW1fdClsc3ltLCAmbmFtZSwgTlVMTCk7CisJCQlpZiAoZGJfaXNfdmFsaWRfbmFtZShuYW1l KSkKKwkJCXsKKwkJCQkqZGlmZnAgPSAoZGJfZXhwcl90KWRpZmY7CisJCQkJcmV0dXJuICgoY19k Yl9zeW1fdClsc3ltKTsKKwkJCX0KIAkJfQogCQlyZXR1cm4gKE5VTEwpOwogCX0KQEAgLTExMyw4 ICsxMzYsMTQgQEAgWF9kYl9zZWFyY2hfc3ltYm9sKGRiX3N5bXRhYl90ICpzeW10YWIsIGRiX2Fk ZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQsCiAJCSAgICBFTEZfU1RfVFlQRShzeW0tPnN0 X2luZm8pICE9IFNUVF9GVU5DICYmCiAJCSAgICBFTEZfU1RfVFlQRShzeW0tPnN0X2luZm8pICE9 IFNUVF9OT1RZUEUpCiAJCQljb250aW51ZTsKKwogCQlpZiAoKG9mZiAtIHN5bS0+c3RfdmFsdWUp ID4gZGlmZikKIAkJCWNvbnRpbnVlOworCisJCVhfZGJfc3ltYm9sX3ZhbHVlcyhzeW10YWIsIChj X2RiX3N5bV90KXN5bSwgJm5hbWUsIE5VTEwpOworCQlpZiAoIWRiX2lzX3ZhbGlkX25hbWUobmFt ZSkpCisJCQljb250aW51ZTsKKwogCQlpZiAoKG9mZiAtIHN5bS0+c3RfdmFsdWUpIDwgZGlmZikg ewogCQkJZGlmZiA9IG9mZiAtIHN5bS0+c3RfdmFsdWU7CiAJCQltYXRjaCA9IHN5bTsK --047d7b60457ea31a1d04ed1b07e0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAvnz_p2vw9=HWbGPePKm_yDxM-bM1h6VaQBeJq9sYXPRb2-Lg>