From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Wilck Subject: Re: [PATCH 2/2] libmultipath: Fix recently introduced inconsistencies Date: Mon, 19 Mar 2018 21:23:17 +0100 Message-ID: <1521490997.3798.118.camel@suse.com> References: <20180319162351.28950-1-bart.vanassche@wdc.com> <20180319162351.28950-3-bart.vanassche@wdc.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180319162351.28950-3-bart.vanassche@wdc.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: Bart Van Assche , Christophe Varoqui Cc: dm-devel@redhat.com List-Id: dm-devel.ids T24gTW9uLCAyMDE4LTAzLTE5IGF0IDA5OjIzIC0wNzAwLCBCYXJ0IFZhbiBBc3NjaGUgd3JvdGU6 Cj4gQ29tbWl0IDQ4ZTlmZDlmNjdiYiBjaGFuZ2VkIGxpYm11bHRpcGF0aCBzdWNoIHRoYXQgYW4g aW50IGlzIHBhc3NlZAo+IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gc29tZSBwcmludF8qKCkg Y2FsbHMgYW5kIGEgcG9pbnRlciB0bwo+IG90aGVyIHByaW50XyooKSBjYWxscy4gRml4IHRoZXNl IGluY29uc2lzdGVuY2llcyBieSBjaGFuZ2luZyBhbGwKPiBjYWxsLWJ5LXJlZmVyZW5jZSBjYWxs cyBpbnRvIGNhbGwtYnktdmFsdWUgY2FsbHMuCj4gCj4gRml4ZXM6IDQ4ZTlmZDlmNjdiYiAoImxp Ym11bHRpcGF0aDogcGFyc2VyOiB1c2UgY2FsbC1ieS12YWx1ZSBmb3IKPiAic25wcmludCIgbWV0 aG9kcyIpCj4gU2lnbmVkLW9mZi1ieTogQmFydCBWYW4gQXNzY2hlIDxiYXJ0LnZhbmFzc2NoZUB3 ZGMuY29tPgo+IENjOiBNYXJ0aW4gV2lsY2sgPG13aWxja0BzdXNlLmNvbT4KCkhpIEJhcnQsCgp0 aGFua3MgYSBsb3QgZm9yIHNwb3R0aW5nIHRoaXMsIGJ1dCBOQUNLIGZvciB0aGUKcmVjb25jaWxl X2ZlYXR1cmVzX3dpdGhfb3B0aW9ucygpIHBhcnQuIFRoaXMgZnVuY3Rpb24gaXMgYWxsb3dlZCB0 bwpjaGFuZ2UgaXRzIG5vX3BhdGhfcmV0cnkgYW5kIHJldGFpbl9od2hhbmRsZXIgYXJndW1lbnRz LgoKUGxlYXNlIGNoYW5nZSBqdXN0IHRoZSBjYWxscyB0byBwcmludF9ub19wYXRoX3JldHJ5KCkg aW4gdGhhdCBmdW5jdGlvbi4KClJlZ2FyZHMKTWFydGluCgoKPiAtLS0KPiAgbGlibXVsdGlwYXRo L2NvbmZpZy5jICB8ICA0ICsrLS0KPiAgbGlibXVsdGlwYXRoL2RpY3QuaCAgICB8IDE0ICsrKysr KystLS0tLS0tCj4gIGxpYm11bHRpcGF0aC9wcm9wc2VsLmMgfCA0NCArKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLQo+ICBsaWJtdWx0aXBhdGgvcHJvcHNlbC5o IHwgIDQgKystLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDMzIGRlbGV0 aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9saWJtdWx0aXBhdGgvY29uZmlnLmMgYi9saWJtdWx0 aXBhdGgvY29uZmlnLmMKPiBpbmRleCAwODVhM2UxMmQwYTAuLmE0MzQzYjk1MTcyYyAxMDA2NDQK PiAtLS0gYS9saWJtdWx0aXBhdGgvY29uZmlnLmMKPiArKysgYi9saWJtdWx0aXBhdGgvY29uZmln LmMKPiBAQCAtMzU1LDggKzM1NSw4IEBAIG1lcmdlX2h3ZSAoc3RydWN0IGh3ZW50cnkgKiBkc3Qs IHN0cnVjdCBod2VudHJ5ICoKPiBzcmMpCj4gIAo+ICAJc25wcmludGYoaWQsIHNpemVvZihpZCks ICIlcy8lcyIsIGRzdC0+dmVuZG9yLCBkc3QtCj4gPnByb2R1Y3QpOwo+ICAgICAgIHJlY29uY2ls ZV9mZWF0dXJlc193aXRoX29wdGlvbnMoaWQsICZkc3QtPmZlYXR1cmVzLAo+IC0JCQkJCSZkc3Qt Pm5vX3BhdGhfcmV0cnksCj4gLQkJCQkJJmRzdC0+cmV0YWluX2h3aGFuZGxlcik7Cj4gKwkJCQkJ ZHN0LT5ub19wYXRoX3JldHJ5LAo+ICsJCQkJCWRzdC0+cmV0YWluX2h3aGFuZGxlcik7Cj4gIAly ZXR1cm4gMDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvbGlibXVsdGlwYXRoL2RpY3QuaCBiL2xp Ym11bHRpcGF0aC9kaWN0LmgKPiBpbmRleCAwNDQyMjI3MzZkZTcuLjc1NjQ4OTIxN2NmZiAxMDA2 NDQKPiAtLS0gYS9saWJtdWx0aXBhdGgvZGljdC5oCj4gKysrIGIvbGlibXVsdGlwYXRoL2RpY3Qu aAo+IEBAIC05LDEyICs5LDEyIEBACj4gIAo+ICB2b2lkIGluaXRfa2V5d29yZHModmVjdG9yIGtl eXdvcmRzKTsKPiAgaW50IGdldF9zeXNfbWF4X2ZkcyhpbnQgKik7Cj4gLWludCBwcmludF9ycl93 ZWlnaHQgKGNoYXIgKiBidWZmLCBpbnQgbGVuLCB2b2lkICpwdHIpOwo+IC1pbnQgcHJpbnRfcGdm YWlsYmFjayAoY2hhciAqIGJ1ZmYsIGludCBsZW4sIHZvaWQgKnB0cik7Cj4gLWludCBwcmludF9w Z3BvbGljeShjaGFyICogYnVmZiwgaW50IGxlbiwgdm9pZCAqcHRyKTsKPiAtaW50IHByaW50X25v X3BhdGhfcmV0cnkoY2hhciAqIGJ1ZmYsIGludCBsZW4sIHZvaWQgKnB0cik7Cj4gLWludCBwcmlu dF9mYXN0X2lvX2ZhaWwoY2hhciAqIGJ1ZmYsIGludCBsZW4sIHZvaWQgKnB0cik7Cj4gLWludCBw cmludF9kZXZfbG9zcyhjaGFyICogYnVmZiwgaW50IGxlbiwgdm9pZCAqcHRyKTsKPiAraW50IHBy aW50X3JyX3dlaWdodChjaGFyICpidWZmLCBpbnQgbGVuLCBsb25nIHYpOwo+ICtpbnQgcHJpbnRf cGdmYWlsYmFjayhjaGFyICpidWZmLCBpbnQgbGVuLCBsb25nIHYpOwo+ICtpbnQgcHJpbnRfcGdw b2xpY3koY2hhciAqYnVmZiwgaW50IGxlbiwgbG9uZyB2KTsKPiAraW50IHByaW50X25vX3BhdGhf cmV0cnkoY2hhciAqYnVmZiwgaW50IGxlbiwgbG9uZyB2KTsKPiAraW50IHByaW50X2Zhc3RfaW9f ZmFpbChjaGFyICpidWZmLCBpbnQgbGVuLCBsb25nIHYpOwo+ICtpbnQgcHJpbnRfZGV2X2xvc3Mo Y2hhciAqYnVmZiwgaW50IGxlbiwgdW5zaWduZWQgbG9uZyB2KTsKPiAgaW50IHByaW50X3Jlc2Vy dmF0aW9uX2tleShjaGFyICogYnVmZiwgaW50IGxlbiwgc3RydWN0IGJlNjQga2V5LCBpbnQKPiBz b3VyY2UpOwo+IC1pbnQgcHJpbnRfb2ZmX2ludF91bmRlZihjaGFyICogYnVmZiwgaW50IGxlbiwg dm9pZCAqcHRyKTsKPiAraW50IHByaW50X29mZl9pbnRfdW5kZWYoY2hhciAqYnVmZiwgaW50IGxl biwgbG9uZyB2KTsKPiAgI2VuZGlmIC8qIF9ESUNUX0ggKi8KPiBkaWZmIC0tZ2l0IGEvbGlibXVs dGlwYXRoL3Byb3BzZWwuYyBiL2xpYm11bHRpcGF0aC9wcm9wc2VsLmMKPiBpbmRleCAwNmYyZmQ1 Mzg4MzUuLjY4M2ZlZmQ5NGRlZSAxMDA2NDQKPiAtLS0gYS9saWJtdWx0aXBhdGgvcHJvcHNlbC5j Cj4gKysrIGIvbGlibXVsdGlwYXRoL3Byb3BzZWwuYwo+IEBAIC0xNTAsNyArMTUwLDcgQEAgaW50 IHNlbGVjdF9ycl93ZWlnaHQoc3RydWN0IGNvbmZpZyAqY29uZiwgc3RydWN0Cj4gbXVsdGlwYXRo ICogbXApCj4gIAltcF9zZXRfY29uZihycl93ZWlnaHQpOwo+ICAJbXBfc2V0X2RlZmF1bHQocnJf d2VpZ2h0LCBERUZBVUxUX1JSX1dFSUdIVCk7Cj4gIG91dDoKPiAtCXByaW50X3JyX3dlaWdodChi dWZmLCAxMywgJm1wLT5ycl93ZWlnaHQpOwo+ICsJcHJpbnRfcnJfd2VpZ2h0KGJ1ZmYsIDEzLCBt cC0+cnJfd2VpZ2h0KTsKPiAgCWNvbmRsb2coMywgIiVzOiBycl93ZWlnaHQgPSAlcyAlcyIsIG1w LT5hbGlhcywgYnVmZiwKPiBvcmlnaW4pOwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBAQCAtMTY1LDcg KzE2NSw3IEBAIGludCBzZWxlY3RfcGdmYWlsYmFjayhzdHJ1Y3QgY29uZmlnICpjb25mLCBzdHJ1 Y3QKPiBtdWx0aXBhdGggKiBtcCkKPiAgCW1wX3NldF9jb25mKHBnZmFpbGJhY2spOwo+ICAJbXBf c2V0X2RlZmF1bHQocGdmYWlsYmFjaywgREVGQVVMVF9GQUlMQkFDSyk7Cj4gIG91dDoKPiAtCXBy aW50X3BnZmFpbGJhY2soYnVmZiwgMTMsICZtcC0+cGdmYWlsYmFjayk7Cj4gKwlwcmludF9wZ2Zh aWxiYWNrKGJ1ZmYsIDEzLCBtcC0+cGdmYWlsYmFjayk7Cj4gIAljb25kbG9nKDMsICIlczogZmFp bGJhY2sgPSAlcyAlcyIsIG1wLT5hbGlhcywgYnVmZiwgb3JpZ2luKTsKPiAgCXJldHVybiAwOwo+ ICB9Cj4gQEAgLTI4Myw4ICsyODMsOCBAQCBvdXQ6Cj4gIAlyZXR1cm4gbXAtPmFsaWFzID8gMCA6 IDE7Cj4gIH0KPiAgCj4gLXZvaWQgcmVjb25jaWxlX2ZlYXR1cmVzX3dpdGhfb3B0aW9ucyhjb25z dCBjaGFyICppZCwgY2hhcgo+ICoqZmVhdHVyZXMsIGludCogbm9fcGF0aF9yZXRyeSwKPiAtCQkg IGludCAqcmV0YWluX2h3aGFuZGxlcikKPiArdm9pZCByZWNvbmNpbGVfZmVhdHVyZXNfd2l0aF9v cHRpb25zKGNvbnN0IGNoYXIgKmlkLCBjaGFyCj4gKipmZWF0dXJlcywgaW50IG5vX3BhdGhfcmV0 cnksCj4gKwkJICBpbnQgcmV0YWluX2h3aGFuZGxlcikKPiAgewo+ICAJc3RhdGljIGNvbnN0IGNo YXIgcV9pX25fcFtdID0gInF1ZXVlX2lmX25vX3BhdGgiOwo+ICAJc3RhdGljIGNvbnN0IGNoYXIg cl9hX2hfaFtdID0gInJldGFpbl9hdHRhY2hlZF9od19oYW5kbGVyIjsKPiBAQCAtMzA3LDE1ICsz MDcsMTUgQEAgdm9pZCByZWNvbmNpbGVfZmVhdHVyZXNfd2l0aF9vcHRpb25zKGNvbnN0IGNoYXIK PiAqaWQsIGNoYXIgKipmZWF0dXJlcywgaW50KiBub19wYQo+ICAJCWNvbmRsb2coMCwgIiVzOiBv cHRpb24gJ2ZlYXR1cmVzIFwiMSAlc1wiJyBpcwo+IGRlcHJlY2F0ZWQsICIKPiAgCQkJInBsZWFz ZSB1c2UgJ25vX3BhdGhfcmV0cnkgcXVldWUnIGluc3RlYWQiLAo+ICAJCQlpZCwgcV9pX25fcCk7 Cj4gLQkJaWYgKCpub19wYXRoX3JldHJ5ID09IE5PX1BBVEhfUkVUUllfVU5ERUYpIHsKPiAtCQkJ Km5vX3BhdGhfcmV0cnkgPSBOT19QQVRIX1JFVFJZX1FVRVVFOwo+ICsJCWlmIChub19wYXRoX3Jl dHJ5ID09IE5PX1BBVEhfUkVUUllfVU5ERUYpIHsKPiArCQkJbm9fcGF0aF9yZXRyeSA9IE5PX1BB VEhfUkVUUllfUVVFVUU7Cj4gIAkJCXByaW50X25vX3BhdGhfcmV0cnkoYnVmZiwgc2l6ZW9mKGJ1 ZmYpLAo+ICAJCQkJCSAgICBub19wYXRoX3JldHJ5KTsKPiAgCQkJY29uZGxvZygzLCAiJXM6IG5v X3BhdGhfcmV0cnkgPSAlcwo+IChpbmhlcml0ZWQgc2V0dGluZyBmcm9tIGZlYXR1cmUgJyVzJyki LAo+ICAJCQkJaWQsIGJ1ZmYsIHFfaV9uX3ApOwo+ICAJCX07Cj4gIAkJLyogV2FybiBvbmx5IGlm IGZlYXR1cmVzIHN0cmluZyBpcyBvdmVycmlkZGVuICovCj4gLQkJaWYgKCpub19wYXRoX3JldHJ5 ICE9IE5PX1BBVEhfUkVUUllfUVVFVUUpIHsKPiArCQlpZiAobm9fcGF0aF9yZXRyeSAhPSBOT19Q QVRIX1JFVFJZX1FVRVVFKSB7Cj4gIAkJCXByaW50X25vX3BhdGhfcmV0cnkoYnVmZiwgc2l6ZW9m KGJ1ZmYpLAo+ICAJCQkJCSAgICBub19wYXRoX3JldHJ5KTsKPiAgCQkJY29uZGxvZygyLCAiJXM6 IGlnbm9yaW5nIGZlYXR1cmUgJyVzJwo+IGJlY2F1c2Ugbm9fcGF0aF9yZXRyeSBpcyBzZXQgdG8g JyVzJyIsCj4gQEAgLTMyNiwxMSArMzI2LDExIEBAIHZvaWQgcmVjb25jaWxlX2ZlYXR1cmVzX3dp dGhfb3B0aW9ucyhjb25zdCBjaGFyCj4gKmlkLCBjaGFyICoqZmVhdHVyZXMsIGludCogbm9fcGEK PiAgCWlmIChzdHJzdHIoKmZlYXR1cmVzLCByX2FfaF9oKSkgewo+ICAJCWNvbmRsb2coMCwgIiVz OiBvcHRpb24gJ2ZlYXR1cmVzIFwiMSAlc1wiJyBpcwo+IGRlcHJlY2F0ZWQiLAo+ICAJCQlpZCwg cl9hX2hfaCk7Cj4gLQkJaWYgKCpyZXRhaW5faHdoYW5kbGVyID09IFJFVEFJTl9IV0hBTkRMRVJf VU5ERUYpIHsKPiArCQlpZiAocmV0YWluX2h3aGFuZGxlciA9PSBSRVRBSU5fSFdIQU5ETEVSX1VO REVGKSB7Cj4gIAkJCWNvbmRsb2coMywgIiVzOiAlcyA9IG9uIChpbmhlcml0ZWQgc2V0dGluZwo+ IGZyb20gZmVhdHVyZSAnJXMnKSIsCj4gIAkJCQlpZCwgcl9hX2hfaCwgcl9hX2hfaCk7Cj4gLQkJ CSpyZXRhaW5faHdoYW5kbGVyID0gUkVUQUlOX0hXSEFORExFUl9PTjsKPiAtCQl9IGVsc2UgaWYg KCpyZXRhaW5faHdoYW5kbGVyID09Cj4gUkVUQUlOX0hXSEFORExFUl9PRkYpCj4gKwkJCXJldGFp bl9od2hhbmRsZXIgPSBSRVRBSU5fSFdIQU5ETEVSX09OOwo+ICsJCX0gZWxzZSBpZiAocmV0YWlu X2h3aGFuZGxlciA9PSBSRVRBSU5fSFdIQU5ETEVSX09GRikKPiAgCQkJY29uZGxvZygyLCAiJXM6 IGlnbm9yaW5nIGZlYXR1cmUgJyVzJwo+IGJlY2F1c2UgJXMgaXMgc2V0IHRvICdvZmYnIiwKPiAg CQkJCWlkLCByX2FfaF9oLCByX2FfaF9oKTsKPiAgCQlyZW1vdmVfZmVhdHVyZShmZWF0dXJlcywg cl9hX2hfaCk7Cj4gQEAgLTM1MCw4ICszNTAsOCBAQCBvdXQ6Cj4gIAltcC0+ZmVhdHVyZXMgPSBT VFJEVVAobXAtPmZlYXR1cmVzKTsKPiAgCj4gIAlyZWNvbmNpbGVfZmVhdHVyZXNfd2l0aF9vcHRp b25zKG1wLT5hbGlhcywgJm1wLT5mZWF0dXJlcywKPiAtCQkJCQkmbXAtPm5vX3BhdGhfcmV0cnks Cj4gLQkJCQkJJm1wLT5yZXRhaW5faHdoYW5kbGVyKTsKPiArCQkJCQltcC0+bm9fcGF0aF9yZXRy eSwKPiArCQkJCQltcC0+cmV0YWluX2h3aGFuZGxlcik7Cj4gIAljb25kbG9nKDMsICIlczogZmVh dHVyZXMgPSBcIiVzXCIgJXMiLCBtcC0+YWxpYXMsIG1wLQo+ID5mZWF0dXJlcywgb3JpZ2luKTsK PiAgCXJldHVybiAwOwo+ICB9Cj4gQEAgLTU2Niw3ICs1NjYsNyBAQCBpbnQgc2VsZWN0X25vX3Bh dGhfcmV0cnkoc3RydWN0IGNvbmZpZyAqY29uZiwKPiBzdHJ1Y3QgbXVsdGlwYXRoICptcCkKPiAg CW1wX3NldF9od2Uobm9fcGF0aF9yZXRyeSk7Cj4gIAltcF9zZXRfY29uZihub19wYXRoX3JldHJ5 KTsKPiAgb3V0Ogo+IC0JcHJpbnRfbm9fcGF0aF9yZXRyeShidWZmLCAxMiwgJm1wLT5ub19wYXRo X3JldHJ5KTsKPiArCXByaW50X25vX3BhdGhfcmV0cnkoYnVmZiwgMTIsIG1wLT5ub19wYXRoX3Jl dHJ5KTsKPiAgCWlmIChvcmlnaW4pCj4gIAkJY29uZGxvZygzLCAiJXM6IG5vX3BhdGhfcmV0cnkg PSAlcyAlcyIsIG1wLT5hbGlhcywKPiBidWZmLAo+ICAJCQlvcmlnaW4pOwo+IEBAIC02MjUsNyAr NjI1LDcgQEAgaW50IHNlbGVjdF9mYXN0X2lvX2ZhaWwoc3RydWN0IGNvbmZpZyAqY29uZiwKPiBz dHJ1Y3QgbXVsdGlwYXRoICptcCkKPiAgCW1wX3NldF9jb25mKGZhc3RfaW9fZmFpbCk7Cj4gIAlt cF9zZXRfZGVmYXVsdChmYXN0X2lvX2ZhaWwsIERFRkFVTFRfRkFTVF9JT19GQUlMKTsKPiAgb3V0 Ogo+IC0JcHJpbnRfZmFzdF9pb19mYWlsKGJ1ZmYsIDEyLCAmbXAtPmZhc3RfaW9fZmFpbCk7Cj4g KwlwcmludF9mYXN0X2lvX2ZhaWwoYnVmZiwgMTIsIG1wLT5mYXN0X2lvX2ZhaWwpOwo+ICAJY29u ZGxvZygzLCAiJXM6IGZhc3RfaW9fZmFpbF90bW8gPSAlcyAlcyIsIG1wLT5hbGlhcywgYnVmZiwK PiBvcmlnaW4pOwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBAQCAtNjQwLDcgKzY0MCw3IEBAIGludCBz ZWxlY3RfZGV2X2xvc3Moc3RydWN0IGNvbmZpZyAqY29uZiwgc3RydWN0Cj4gbXVsdGlwYXRoICpt cCkKPiAgCW1wLT5kZXZfbG9zcyA9IDA7Cj4gIAlyZXR1cm4gMDsKPiAgb3V0Ogo+IC0JcHJpbnRf ZGV2X2xvc3MoYnVmZiwgMTIsICZtcC0+ZGV2X2xvc3MpOwo+ICsJcHJpbnRfZGV2X2xvc3MoYnVm ZiwgMTIsIG1wLT5kZXZfbG9zcyk7Cj4gIAljb25kbG9nKDMsICIlczogZGV2X2xvc3NfdG1vID0g JXMgJXMiLCBtcC0+YWxpYXMsIGJ1ZmYsCj4gb3JpZ2luKTsKPiAgCXJldHVybiAwOwo+ICB9Cj4g QEAgLTc3Niw3ICs3NzYsNyBAQCBpbnQgc2VsZWN0X2RlbGF5X3dhdGNoX2NoZWNrcyhzdHJ1Y3Qg Y29uZmlnCj4gKmNvbmYsIHN0cnVjdCBtdWx0aXBhdGggKm1wKQo+ICAJbXBfc2V0X2NvbmYoZGVs YXlfd2F0Y2hfY2hlY2tzKTsKPiAgCW1wX3NldF9kZWZhdWx0KGRlbGF5X3dhdGNoX2NoZWNrcywg REVGQVVMVF9ERUxBWV9DSEVDS1MpOwo+ICBvdXQ6Cj4gLQlwcmludF9vZmZfaW50X3VuZGVmKGJ1 ZmYsIDEyLCAmbXAtPmRlbGF5X3dhdGNoX2NoZWNrcyk7Cj4gKwlwcmludF9vZmZfaW50X3VuZGVm KGJ1ZmYsIDEyLCBtcC0+ZGVsYXlfd2F0Y2hfY2hlY2tzKTsKPiAgCWNvbmRsb2coMywgIiVzOiBk ZWxheV93YXRjaF9jaGVja3MgPSAlcyAlcyIsIG1wLT5hbGlhcywKPiBidWZmLCBvcmlnaW4pOwo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiBAQCAtNzkxLDcgKzc5MSw3IEBAIGludCBzZWxlY3RfZGVsYXlf d2FpdF9jaGVja3Moc3RydWN0IGNvbmZpZyAqY29uZiwKPiBzdHJ1Y3QgbXVsdGlwYXRoICptcCkK PiAgCW1wX3NldF9jb25mKGRlbGF5X3dhaXRfY2hlY2tzKTsKPiAgCW1wX3NldF9kZWZhdWx0KGRl bGF5X3dhaXRfY2hlY2tzLCBERUZBVUxUX0RFTEFZX0NIRUNLUyk7Cj4gIG91dDoKPiAtCXByaW50 X29mZl9pbnRfdW5kZWYoYnVmZiwgMTIsICZtcC0+ZGVsYXlfd2FpdF9jaGVja3MpOwo+ICsJcHJp bnRfb2ZmX2ludF91bmRlZihidWZmLCAxMiwgbXAtPmRlbGF5X3dhaXRfY2hlY2tzKTsKPiAgCWNv bmRsb2coMywgIiVzOiBkZWxheV93YWl0X2NoZWNrcyA9ICVzICVzIiwgbXAtPmFsaWFzLCBidWZm LAo+IG9yaWdpbik7Cj4gIAlyZXR1cm4gMDsKPiAgCj4gQEAgLTgwNyw3ICs4MDcsNyBAQCBpbnQg c2VsZWN0X21hcmdpbmFsX3BhdGhfZXJyX3NhbXBsZV90aW1lKHN0cnVjdAo+IGNvbmZpZyAqY29u Ziwgc3RydWN0IG11bHRpcGF0aCAqCj4gIAltcF9zZXRfY29uZihtYXJnaW5hbF9wYXRoX2Vycl9z YW1wbGVfdGltZSk7Cj4gIAltcF9zZXRfZGVmYXVsdChtYXJnaW5hbF9wYXRoX2Vycl9zYW1wbGVf dGltZSwKPiBERUZBVUxUX0VSUl9DSEVDS1MpOwo+ICBvdXQ6Cj4gLQlwcmludF9vZmZfaW50X3Vu ZGVmKGJ1ZmYsIDEyLCAmbXAtCj4gPm1hcmdpbmFsX3BhdGhfZXJyX3NhbXBsZV90aW1lKTsKPiAr CXByaW50X29mZl9pbnRfdW5kZWYoYnVmZiwgMTIsIG1wLQo+ID5tYXJnaW5hbF9wYXRoX2Vycl9z YW1wbGVfdGltZSk7Cj4gIAljb25kbG9nKDMsICIlczogbWFyZ2luYWxfcGF0aF9lcnJfc2FtcGxl X3RpbWUgPSAlcyAlcyIsIG1wLQo+ID5hbGlhcywgYnVmZiwKPiAgCQkJb3JpZ2luKTsKPiAgCXJl dHVybiAwOwo+IEBAIC04MjMsNyArODIzLDcgQEAgaW50Cj4gc2VsZWN0X21hcmdpbmFsX3BhdGhf ZXJyX3JhdGVfdGhyZXNob2xkKHN0cnVjdCBjb25maWcgKmNvbmYsIHN0cnVjdAo+IG11bHRpcGF0 Cj4gIAltcF9zZXRfY29uZihtYXJnaW5hbF9wYXRoX2Vycl9yYXRlX3RocmVzaG9sZCk7Cj4gIAlt cF9zZXRfZGVmYXVsdChtYXJnaW5hbF9wYXRoX2Vycl9yYXRlX3RocmVzaG9sZCwKPiBERUZBVUxU X0VSUl9DSEVDS1MpOwo+ICBvdXQ6Cj4gLQlwcmludF9vZmZfaW50X3VuZGVmKGJ1ZmYsIDEyLCAm bXAtCj4gPm1hcmdpbmFsX3BhdGhfZXJyX3JhdGVfdGhyZXNob2xkKTsKPiArCXByaW50X29mZl9p bnRfdW5kZWYoYnVmZiwgMTIsIG1wLQo+ID5tYXJnaW5hbF9wYXRoX2Vycl9yYXRlX3RocmVzaG9s ZCk7Cj4gIAljb25kbG9nKDMsICIlczogbWFyZ2luYWxfcGF0aF9lcnJfcmF0ZV90aHJlc2hvbGQg PSAlcyAlcyIsCj4gbXAtPmFsaWFzLCBidWZmLAo+ICAJCQlvcmlnaW4pOwo+ICAJcmV0dXJuIDA7 Cj4gQEAgLTgzOSw3ICs4MzksNyBAQCBpbnQKPiBzZWxlY3RfbWFyZ2luYWxfcGF0aF9lcnJfcmVj aGVja19nYXBfdGltZShzdHJ1Y3QgY29uZmlnICpjb25mLCBzdHJ1Y3QKPiBtdWx0aXAKPiAgCW1w X3NldF9jb25mKG1hcmdpbmFsX3BhdGhfZXJyX3JlY2hlY2tfZ2FwX3RpbWUpOwo+ICAJbXBfc2V0 X2RlZmF1bHQobWFyZ2luYWxfcGF0aF9lcnJfcmVjaGVja19nYXBfdGltZSwKPiBERUZBVUxUX0VS Ul9DSEVDS1MpOwo+ICBvdXQ6Cj4gLQlwcmludF9vZmZfaW50X3VuZGVmKGJ1ZmYsIDEyLCAmbXAt Cj4gPm1hcmdpbmFsX3BhdGhfZXJyX3JlY2hlY2tfZ2FwX3RpbWUpOwo+ICsJcHJpbnRfb2ZmX2lu dF91bmRlZihidWZmLCAxMiwgbXAtCj4gPm1hcmdpbmFsX3BhdGhfZXJyX3JlY2hlY2tfZ2FwX3Rp bWUpOwo+ICAJY29uZGxvZygzLCAiJXM6IG1hcmdpbmFsX3BhdGhfZXJyX3JlY2hlY2tfZ2FwX3Rp bWUgPSAlcyAlcyIsCj4gbXAtPmFsaWFzLCBidWZmLAo+ICAJCQlvcmlnaW4pOwo+ICAJcmV0dXJu IDA7Cj4gQEAgLTg1NSw3ICs4NTUsNyBAQCBpbnQKPiBzZWxlY3RfbWFyZ2luYWxfcGF0aF9kb3Vi bGVfZmFpbGVkX3RpbWUoc3RydWN0IGNvbmZpZyAqY29uZiwgc3RydWN0Cj4gbXVsdGlwYXQKPiAg CW1wX3NldF9jb25mKG1hcmdpbmFsX3BhdGhfZG91YmxlX2ZhaWxlZF90aW1lKTsKPiAgCW1wX3Nl dF9kZWZhdWx0KG1hcmdpbmFsX3BhdGhfZG91YmxlX2ZhaWxlZF90aW1lLAo+IERFRkFVTFRfRVJS X0NIRUNLUyk7Cj4gIG91dDoKPiAtCXByaW50X29mZl9pbnRfdW5kZWYoYnVmZiwgMTIsICZtcC0K PiA+bWFyZ2luYWxfcGF0aF9kb3VibGVfZmFpbGVkX3RpbWUpOwo+ICsJcHJpbnRfb2ZmX2ludF91 bmRlZihidWZmLCAxMiwgbXAtCj4gPm1hcmdpbmFsX3BhdGhfZG91YmxlX2ZhaWxlZF90aW1lKTsK PiAgCWNvbmRsb2coMywgIiVzOiBtYXJnaW5hbF9wYXRoX2RvdWJsZV9mYWlsZWRfdGltZSA9ICVz ICVzIiwKPiBtcC0+YWxpYXMsIGJ1ZmYsCj4gIAkJCW9yaWdpbik7Cj4gIAlyZXR1cm4gMDsKPiBA QCAtOTA4LDcgKzkwOCw3IEBAIGludCBzZWxlY3RfZ2hvc3RfZGVsYXkgKHN0cnVjdCBjb25maWcg KmNvbmYsCj4gc3RydWN0IG11bHRpcGF0aCAqIG1wKQo+ICAJbXBfc2V0X2NvbmYoZ2hvc3RfZGVs YXkpOwo+ICAJbXBfc2V0X2RlZmF1bHQoZ2hvc3RfZGVsYXksIERFRkFVTFRfR0hPU1RfREVMQVkp Owo+ICBvdXQ6Cj4gLQlwcmludF9vZmZfaW50X3VuZGVmKGJ1ZmYsIDEyLCAmbXAtPmdob3N0X2Rl bGF5KTsKPiArCXByaW50X29mZl9pbnRfdW5kZWYoYnVmZiwgMTIsIG1wLT5naG9zdF9kZWxheSk7 Cj4gIAljb25kbG9nKDMsICIlczogZ2hvc3RfZGVsYXkgPSAlcyAlcyIsIG1wLT5hbGlhcywgYnVm ZiwKPiBvcmlnaW4pOwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvbGlibXVsdGlw YXRoL3Byb3BzZWwuaCBiL2xpYm11bHRpcGF0aC9wcm9wc2VsLmgKPiBpbmRleCAxMzZmOTA2MDVi OTEuLmFiN2MzNTgwMzViYiAxMDA2NDQKPiAtLS0gYS9saWJtdWx0aXBhdGgvcHJvcHNlbC5oCj4g KysrIGIvbGlibXVsdGlwYXRoL3Byb3BzZWwuaAo+IEBAIC0zMSw1ICszMSw1IEBAIGludAo+IHNl bGVjdF9tYXJnaW5hbF9wYXRoX2Vycl9yZWNoZWNrX2dhcF90aW1lKHN0cnVjdCBjb25maWcgKmNv bmYsIHN0cnVjdAo+IG11bHRpcAo+ICBpbnQgc2VsZWN0X21hcmdpbmFsX3BhdGhfZG91YmxlX2Zh aWxlZF90aW1lKHN0cnVjdCBjb25maWcgKmNvbmYsCj4gc3RydWN0IG11bHRpcGF0aCAqbXApOwo+ ICBpbnQgc2VsZWN0X2dob3N0X2RlbGF5KHN0cnVjdCBjb25maWcgKmNvbmYsIHN0cnVjdCBtdWx0 aXBhdGggKiBtcCk7Cj4gIHZvaWQgcmVjb25jaWxlX2ZlYXR1cmVzX3dpdGhfb3B0aW9ucyhjb25z dCBjaGFyICppZCwgY2hhcgo+ICoqZmVhdHVyZXMsCj4gLQkJCQkgICAgIGludCogbm9fcGF0aF9y ZXRyeSwKPiAtCQkJCSAgICAgaW50ICpyZXRhaW5faHdoYW5kbGVyKTsKPiArCQkJCSAgICAgaW50 IG5vX3BhdGhfcmV0cnksCj4gKwkJCQkgICAgIGludCByZXRhaW5faHdoYW5kbGVyKTsKCi0tIApE ci4gTWFydGluIFdpbGNrIDxtd2lsY2tAc3VzZS5jb20+LCBUZWwuICs0OSAoMCk5MTEgNzQwNTMg MjEwNwpTVVNFIExpbnV4IEdtYkgsIEdGOiBGZWxpeCBJbWVuZMO2cmZmZXIsIEphbmUgU21pdGhh cmQsIEdyYWhhbSBOb3J0b24KSFJCIDIxMjg0IChBRyBOw7xybmJlcmcpCgotLQpkbS1kZXZlbCBt YWlsaW5nIGxpc3QKZG0tZGV2ZWxAcmVkaGF0LmNvbQpodHRwczovL3d3dy5yZWRoYXQuY29tL21h aWxtYW4vbGlzdGluZm8vZG0tZGV2ZWw=