From mboxrd@z Thu Jan 1 00:00:00 1970 From: Trond Myklebust Subject: Re: [RFC PATCH] lib: Introduce generic __cmpxchg_u64() and use it where needed Date: Thu, 1 Nov 2018 00:17:31 +0000 Message-ID: <4e2438a23d2edf03368950a72ec058d1d299c32e.camel@hammerspace.com> References: <1541015538-11382-1-git-send-email-linux@roeck-us.net> <20181031213240.zhh7dfcm47ucuyfl@pburton-laptop> <20181031220253.GA15505@roeck-us.net> <20181031233235.qbedw3pinxcuk7me@pburton-laptop> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "linux-kernel@vger.kernel.org" , "ralf@linux-mips.org" , "jlayton@kernel.org" , "linuxppc-dev@lists.ozlabs.org" , "bfields@fieldses.org" , "linux-mips@linux-mips.org" , "linux-nfs@vger.kernel.org" , "akpm@linux-foundation.org" , "anna.schumaker@netapp.com" , "jhogan@kernel.org" , "netdev@vger.kernel.org" , "davem@davemloft.net" , "arnd@arndb.de" , "paulus@samba.org" , "mpe@ellerman.id.au" , "benh@kernel.crashing.org" , "paul.burton@mips.com" Return-path: In-Reply-To: <20181031233235.qbedw3pinxcuk7me@pburton-laptop> Content-Language: en-US Content-ID: <2DC2E59D54857A4C9E6FD81F927F5E22@namprd13.prod.outlook.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org SGkgUGF1bCwNCg0KT24gV2VkLCAyMDE4LTEwLTMxIGF0IDIzOjMyICswMDAwLCBQYXVsIEJ1cnRv biB3cm90ZToNCj4gKENvcHlpbmcgU3VuUlBDICYgbmV0IG1haW50YWluZXJzLikNCj4gDQo+IEhp IEd1ZW50ZXIsDQo+IA0KPiBPbiBXZWQsIE9jdCAzMSwgMjAxOCBhdCAwMzowMjo1M1BNIC0wNzAw LCBHdWVudGVyIFJvZWNrIHdyb3RlOg0KPiA+IFRoZSBhbHRlcm5hdGl2ZXMgSSBjYW4gc2VlIGFy ZQ0KPiA+IC0gRG8gbm90IHVzZSBjbXB4Y2hnNjQoKSBvdXRzaWRlIGFyY2hpdGVjdHVyZSBjb2Rl IChpZSBkcm9wIGl0cyB1c2UNCj4gPiBmcm9tDQo+ID4gICB0aGUgb2ZmZW5kaW5nIGRyaXZlciwg YW5kIGtlZXAgZG9pbmcgdGhlIHNhbWUgd2hlbmV2ZXIgdGhlDQo+ID4gcHJvYmxlbSBjb21lcw0K PiA+ICAgdXAgYWdhaW4pLg0KPiA+IG9yDQo+ID4gLSBJbnRyb2R1Y2Ugc29tZXRoaW5nIGxpa2Ug QVJDSF9IQVNfQ01QWENIRzY0IGFuZCB1c2UgaXQgdG8NCj4gPiBkZXRlcm1pbmUNCj4gPiAgIGlm IGNtcHhjaGc2NCBpcyBzdXBwb3J0ZWQgb3Igbm90Lg0KPiA+IA0KPiA+IEFueSBwcmVmZXJlbmNl ID8NCj4gDQo+IE15IHByZWZlcmVuY2Ugd291bGQgYmUgb3B0aW9uIDEgLSBhdm9pZGluZyBjbXB4 Y2hnNjQoKSB3aGVyZSBwb3NzaWJsZQ0KPiBpbg0KPiBnZW5lcmljIGNvZGUuIEkgd291bGRuJ3Qg YmUgb3Bwb3NlZCB0byB0aGUgS2NvbmZpZyBvcHRpb24gaWYgdGhlcmUNCj4gYXJlDQo+IGNhc2Vz IHdoZXJlIGNtcHhjaGc2NCgpIGNhbiByZWFsbHkgaGVscCBwZXJmb3JtYW5jZSB0aG91Z2guDQo+ IA0KPiBUaGUgbGFzdCB0aW1lIEknbSBhd2FyZSBvZiB0aGlzIGNvbWluZyB1cCB0aGUgYWZmZWN0 ZWQgZHJpdmVyIHdhcw0KPiBtb2RpZmllZCB0byBhdm9pZCBjbXB4Y2hnNjQoKSBbMV0uDQo+IA0K PiBJbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSBJIGhhdmUgbm8gaWRlYSB3aHkNCj4gbmV0L3N1bnJw Yy9hdXRoX2dzcy9nc3Nfa3JiNV9zZWFsLmMgaXMgdXNpbmcgY21weGNoZzY0KCkgYXQgYWxsLiBJ dCdzDQo+IGVzc2VudGlhbGx5IHJlaW52ZW50aW5nIGF0b21pYzY0X2ZldGNoX2luYygpIHdoaWNo IGlzIGFscmVhZHkNCj4gcHJvdmlkZWQNCj4gZXZlcnl3aGVyZSB2aWEgQ09ORklHX0dFTkVSSUNf QVRPTUlDNjQgJiB0aGUgc3BpbmxvY2sgYXBwcm9hY2guIEF0DQo+IGxlYXN0DQo+IGZvciBhdG9t aWM2NF8qIGZ1bmN0aW9ucyB0aGUgYXNzdW1wdGlvbiB0aGF0IGFsbCBhY2Nlc3Mgd2lsbCBiZQ0K PiBwZXJmb3JtZWQgdXNpbmcgdGhvc2Ugc2FtZSBmdW5jdGlvbnMgc2VlbXMgc29tZXdoYXQgcmVh c29uYWJsZS4NCj4gDQo+IFNvIGhvdyBkb2VzIHRoZSBiZWxvdyBsb29rPyBUcm9uZD8NCj4gDQoN Ck15IG9uZSBxdWVzdGlvbiAoYW5kIHRoZSByZWFzb24gd2h5IEkgd2VudCB3aXRoIGNtcHhjaGco KSBpbiB0aGUgZmlyc3QNCnBsYWNlKSB3b3VsZCBiZSBhYm91dCB0aGUgb3ZlcmZsb3cgYmVoYXZp b3VyIGZvciBhdG9taWNfZmV0Y2hfaW5jKCkgYW5kDQpmcmllbmRzLiBJIGJlbGlldmUgdGhvc2Ug ZnVuY3Rpb25zIHNob3VsZCBiZSBPSyBvbiB4ODYsIHNvIHRoYXQgd2hlbiB3ZQ0Kb3ZlcmZsb3cg dGhlIGNvdW50ZXIsIGl0IGJlaGF2ZXMgbGlrZSBhbiB1bnNpZ25lZCB2YWx1ZSBhbmQgd3JhcHMg YmFjaw0KYXJvdW5kLiAgSXMgdGhhdCB0aGUgY2FzZSBmb3IgYWxsIGFyY2hpdGVjdHVyZXM/DQoN CmkuZS4gYXJlIGF0b21pY190L2F0b21pYzY0X3QgYWx3YXlzIGd1YXJhbnRlZWQgdG8gYmVoYXZl IGxpa2UgdTMyL3U2NA0Kb24gaW5jcmVtZW50Pw0KDQpJIGNvdWxkIG5vdCBmaW5kIGFueSBkb2N1 bWVudGF0aW9uIHRoYXQgZXhwbGljaXRseSBzdGF0ZWQgdGhhdCB0aGV5DQpzaG91bGQuDQoNCkNo ZWVycw0KICBUcm9uZA0KDQo+IFRoYW5rcywNCj4gICAgIFBhdWwNCj4gDQo+IFsxXSBodHRwczov L3BhdGNod29yay5vemxhYnMub3JnL2NvdmVyLzg5MTI4NC8NCj4gDQo+IC0tLQ0KPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9zdW5ycGMvZ3NzX2tyYjUuaA0KPiBiL2luY2x1ZGUvbGludXgv c3VucnBjL2dzc19rcmI1LmgNCj4gaW5kZXggMTMxNDI0Y2VmYzZhLi4wMmMwNDEyZTM2OGMgMTAw NjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvc3VucnBjL2dzc19rcmI1LmgNCj4gKysrIGIvaW5j bHVkZS9saW51eC9zdW5ycGMvZ3NzX2tyYjUuaA0KPiBAQCAtMTA3LDggKzEwNyw4IEBAIHN0cnVj dCBrcmI1X2N0eCB7DQo+ICAJdTgJCQlLc2Vzc1tHU1NfS1JCNV9NQVhfS0VZTEVOXTsgLyoNCj4g c2Vzc2lvbiBrZXkgKi8NCj4gIAl1OAkJCWNrc3VtW0dTU19LUkI1X01BWF9LRVlMRU5dOw0KPiAg CXMzMgkJCWVuZHRpbWU7DQo+IC0JdTMyCQkJc2VxX3NlbmQ7DQo+IC0JdTY0CQkJc2VxX3NlbmQ2 NDsNCj4gKwlhdG9taWNfdAkJc2VxX3NlbmQ7DQo+ICsJYXRvbWljNjRfdAkJc2VxX3NlbmQ2NDsN Cj4gIAlzdHJ1Y3QgeGRyX25ldG9iagltZWNoX3VzZWQ7DQo+ICAJdTgJCQlpbml0aWF0b3Jfc2ln bltHU1NfS1JCNV9NQVhfS0VZTEVOXTsNCj4gIAl1OAkJCWFjY2VwdG9yX3NpZ25bR1NTX0tSQjVf TUFYX0tFWUxFTl07DQo+IEBAIC0xMTgsOSArMTE4LDYgQEAgc3RydWN0IGtyYjVfY3R4IHsNCj4g IAl1OAkJCWFjY2VwdG9yX2ludGVnW0dTU19LUkI1X01BWF9LRVlMRU5dOw0KPiAgfTsNCj4gIA0K PiAtZXh0ZXJuIHUzMiBnc3Nfc2VxX3NlbmRfZmV0Y2hfYW5kX2luYyhzdHJ1Y3Qga3JiNV9jdHgg KmN0eCk7DQo+IC1leHRlcm4gdTY0IGdzc19zZXFfc2VuZDY0X2ZldGNoX2FuZF9pbmMoc3RydWN0 IGtyYjVfY3R4ICpjdHgpOw0KPiAtDQo+ICAvKiBUaGUgbGVuZ3RoIG9mIHRoZSBLZXJiZXJvcyBH U1MgdG9rZW4gaGVhZGVyICovDQo+ICAjZGVmaW5lIEdTU19LUkI1X1RPS19IRFJfTEVOCSgxNikN Cj4gIA0KPiBkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV9tZWNoLmMN Cj4gYi9uZXQvc3VucnBjL2F1dGhfZ3NzL2dzc19rcmI1X21lY2guYw0KPiBpbmRleCA3ZjA0MjRk ZmE4ZjYuLmVhYjcxZmM3YWYzZSAxMDA2NDQNCj4gLS0tIGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9n c3Nfa3JiNV9tZWNoLmMNCj4gKysrIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV9tZWNo LmMNCj4gQEAgLTI3NCw2ICsyNzQsNyBAQCBnZXRfa2V5KGNvbnN0IHZvaWQgKnAsIGNvbnN0IHZv aWQgKmVuZCwNCj4gIHN0YXRpYyBpbnQNCj4gIGdzc19pbXBvcnRfdjFfY29udGV4dChjb25zdCB2 b2lkICpwLCBjb25zdCB2b2lkICplbmQsIHN0cnVjdA0KPiBrcmI1X2N0eCAqY3R4KQ0KPiAgew0K PiArCXUzMiBzZXFfc2VuZDsNCj4gIAlpbnQgdG1wOw0KPiAgDQo+ICAJcCA9IHNpbXBsZV9nZXRf Ynl0ZXMocCwgZW5kLCAmY3R4LT5pbml0aWF0ZSwgc2l6ZW9mKGN0eC0NCj4gPmluaXRpYXRlKSk7 DQo+IEBAIC0zMTUsOSArMzE2LDEwIEBAIGdzc19pbXBvcnRfdjFfY29udGV4dChjb25zdCB2b2lk ICpwLCBjb25zdCB2b2lkDQo+ICplbmQsIHN0cnVjdCBrcmI1X2N0eCAqY3R4KQ0KPiAgCXAgPSBz aW1wbGVfZ2V0X2J5dGVzKHAsIGVuZCwgJmN0eC0+ZW5kdGltZSwgc2l6ZW9mKGN0eC0NCj4gPmVu ZHRpbWUpKTsNCj4gIAlpZiAoSVNfRVJSKHApKQ0KPiAgCQlnb3RvIG91dF9lcnI7DQo+IC0JcCA9 IHNpbXBsZV9nZXRfYnl0ZXMocCwgZW5kLCAmY3R4LT5zZXFfc2VuZCwgc2l6ZW9mKGN0eC0NCj4g PnNlcV9zZW5kKSk7DQo+ICsJcCA9IHNpbXBsZV9nZXRfYnl0ZXMocCwgZW5kLCAmc2VxX3NlbmQs IHNpemVvZihzZXFfc2VuZCkpOw0KPiAgCWlmIChJU19FUlIocCkpDQo+ICAJCWdvdG8gb3V0X2Vy cjsNCj4gKwlhdG9taWNfc2V0KCZjdHgtPnNlcV9zZW5kLCBzZXFfc2VuZCk7DQo+ICAJcCA9IHNp bXBsZV9nZXRfbmV0b2JqKHAsIGVuZCwgJmN0eC0+bWVjaF91c2VkKTsNCj4gIAlpZiAoSVNfRVJS KHApKQ0KPiAgCQlnb3RvIG91dF9lcnI7DQo+IEBAIC02MDcsNiArNjA5LDcgQEAgc3RhdGljIGlu dA0KPiAgZ3NzX2ltcG9ydF92Ml9jb250ZXh0KGNvbnN0IHZvaWQgKnAsIGNvbnN0IHZvaWQgKmVu ZCwgc3RydWN0DQo+IGtyYjVfY3R4ICpjdHgsDQo+ICAJCWdmcF90IGdmcF9tYXNrKQ0KPiAgew0K PiArCXU2NCBzZXFfc2VuZDY0Ow0KPiAgCWludCBrZXlsZW47DQo+ICANCj4gIAlwID0gc2ltcGxl X2dldF9ieXRlcyhwLCBlbmQsICZjdHgtPmZsYWdzLCBzaXplb2YoY3R4LT5mbGFncykpOw0KPiBA QCAtNjE3LDE0ICs2MjAsMTUgQEAgZ3NzX2ltcG9ydF92Ml9jb250ZXh0KGNvbnN0IHZvaWQgKnAs IGNvbnN0IHZvaWQNCj4gKmVuZCwgc3RydWN0IGtyYjVfY3R4ICpjdHgsDQo+ICAJcCA9IHNpbXBs ZV9nZXRfYnl0ZXMocCwgZW5kLCAmY3R4LT5lbmR0aW1lLCBzaXplb2YoY3R4LQ0KPiA+ZW5kdGlt ZSkpOw0KPiAgCWlmIChJU19FUlIocCkpDQo+ICAJCWdvdG8gb3V0X2VycjsNCj4gLQlwID0gc2lt cGxlX2dldF9ieXRlcyhwLCBlbmQsICZjdHgtPnNlcV9zZW5kNjQsIHNpemVvZihjdHgtDQo+ID5z ZXFfc2VuZDY0KSk7DQo+ICsJcCA9IHNpbXBsZV9nZXRfYnl0ZXMocCwgZW5kLCAmc2VxX3NlbmQ2 NCwgc2l6ZW9mKHNlcV9zZW5kNjQpKTsNCj4gIAlpZiAoSVNfRVJSKHApKQ0KPiAgCQlnb3RvIG91 dF9lcnI7DQo+ICsJYXRvbWljNjRfc2V0KCZjdHgtPnNlcV9zZW5kNjQsIHNlcV9zZW5kNjQpOw0K PiAgCS8qIHNldCBzZXFfc2VuZCBmb3IgdXNlIGJ5ICJvbGRlciIgZW5jdHlwZXMgKi8NCj4gLQlj dHgtPnNlcV9zZW5kID0gY3R4LT5zZXFfc2VuZDY0Ow0KPiAtCWlmIChjdHgtPnNlcV9zZW5kNjQg IT0gY3R4LT5zZXFfc2VuZCkgew0KPiAtCQlkcHJpbnRrKCIlczogc2VxX3NlbmQ2NCAlbHgsIHNl cV9zZW5kICV4IG92ZXJmbG93P1xuIiwNCj4gX19mdW5jX18sDQo+IC0JCQkodW5zaWduZWQgbG9u ZyljdHgtPnNlcV9zZW5kNjQsIGN0eC0+c2VxX3NlbmQpOw0KPiArCWF0b21pY19zZXQoJmN0eC0+ c2VxX3NlbmQsIHNlcV9zZW5kNjQpOw0KPiArCWlmIChzZXFfc2VuZDY0ICE9IGF0b21pY19yZWFk KCZjdHgtPnNlcV9zZW5kKSkgew0KPiArCQlkcHJpbnRrKCIlczogc2VxX3NlbmQ2NCAlbGx4LCBz ZXFfc2VuZCAleCBvdmVyZmxvdz9cbiIsDQo+IF9fZnVuY19fLA0KPiArCQkJc2VxX3NlbmQ2NCwg YXRvbWljX3JlYWQoJmN0eC0+c2VxX3NlbmQpKTsNCj4gIAkJcCA9IEVSUl9QVFIoLUVJTlZBTCk7 DQo+ICAJCWdvdG8gb3V0X2VycjsNCj4gIAl9DQo+IGRpZmYgLS1naXQgYS9uZXQvc3VucnBjL2F1 dGhfZ3NzL2dzc19rcmI1X3NlYWwuYw0KPiBiL25ldC9zdW5ycGMvYXV0aF9nc3MvZ3NzX2tyYjVf c2VhbC5jDQo+IGluZGV4IGI0YWRlYjA2NjYwYi4uNDhmZTRhNTkxYjU0IDEwMDY0NA0KPiAtLS0g YS9uZXQvc3VucnBjL2F1dGhfZ3NzL2dzc19rcmI1X3NlYWwuYw0KPiArKysgYi9uZXQvc3VucnBj L2F1dGhfZ3NzL2dzc19rcmI1X3NlYWwuYw0KPiBAQCAtMTIzLDMwICsxMjMsNiBAQCBzZXR1cF90 b2tlbl92MihzdHJ1Y3Qga3JiNV9jdHggKmN0eCwgc3RydWN0DQo+IHhkcl9uZXRvYmogKnRva2Vu KQ0KPiAgCXJldHVybiBrcmI1X2hkcjsNCj4gIH0NCj4gIA0KPiAtdTMyDQo+IC1nc3Nfc2VxX3Nl bmRfZmV0Y2hfYW5kX2luYyhzdHJ1Y3Qga3JiNV9jdHggKmN0eCkNCj4gLXsNCj4gLQl1MzIgb2xk LCBzZXFfc2VuZCA9IFJFQURfT05DRShjdHgtPnNlcV9zZW5kKTsNCj4gLQ0KPiAtCWRvIHsNCj4g LQkJb2xkID0gc2VxX3NlbmQ7DQo+IC0JCXNlcV9zZW5kID0gY21weGNoZygmY3R4LT5zZXFfc2Vu ZCwgb2xkLCBvbGQgKyAxKTsNCj4gLQl9IHdoaWxlIChvbGQgIT0gc2VxX3NlbmQpOw0KPiAtCXJl dHVybiBzZXFfc2VuZDsNCj4gLX0NCj4gLQ0KPiAtdTY0DQo+IC1nc3Nfc2VxX3NlbmQ2NF9mZXRj aF9hbmRfaW5jKHN0cnVjdCBrcmI1X2N0eCAqY3R4KQ0KPiAtew0KPiAtCXU2NCBvbGQsIHNlcV9z ZW5kID0gUkVBRF9PTkNFKGN0eC0+c2VxX3NlbmQpOw0KPiAtDQo+IC0JZG8gew0KPiAtCQlvbGQg PSBzZXFfc2VuZDsNCj4gLQkJc2VxX3NlbmQgPSBjbXB4Y2hnNjQoJmN0eC0+c2VxX3NlbmQ2NCwg b2xkLCBvbGQgKyAxKTsNCj4gLQl9IHdoaWxlIChvbGQgIT0gc2VxX3NlbmQpOw0KPiAtCXJldHVy biBzZXFfc2VuZDsNCj4gLX0NCj4gLQ0KPiAgc3RhdGljIHUzMg0KPiAgZ3NzX2dldF9taWNfdjEo c3RydWN0IGtyYjVfY3R4ICpjdHgsIHN0cnVjdCB4ZHJfYnVmICp0ZXh0LA0KPiAgCQlzdHJ1Y3Qg eGRyX25ldG9iaiAqdG9rZW4pDQo+IEBAIC0xNzcsNyArMTUzLDcgQEAgZ3NzX2dldF9taWNfdjEo c3RydWN0IGtyYjVfY3R4ICpjdHgsIHN0cnVjdA0KPiB4ZHJfYnVmICp0ZXh0LA0KPiAgDQo+ICAJ bWVtY3B5KHB0ciArIEdTU19LUkI1X1RPS19IRFJfTEVOLCBtZDVja3N1bS5kYXRhLA0KPiBtZDVj a3N1bS5sZW4pOw0KPiAgDQo+IC0Jc2VxX3NlbmQgPSBnc3Nfc2VxX3NlbmRfZmV0Y2hfYW5kX2lu YyhjdHgpOw0KPiArCXNlcV9zZW5kID0gYXRvbWljX2ZldGNoX2luYygmY3R4LT5zZXFfc2VuZCk7 DQo+ICANCj4gIAlpZiAoa3JiNV9tYWtlX3NlcV9udW0oY3R4LCBjdHgtPnNlcSwgY3R4LT5pbml0 aWF0ZSA/IDAgOiAweGZmLA0KPiAgCQkJICAgICAgc2VxX3NlbmQsIHB0ciArIEdTU19LUkI1X1RP S19IRFJfTEVOLCBwdHINCj4gKyA4KSkNCj4gQEAgLTIwNSw3ICsxODEsNyBAQCBnc3NfZ2V0X21p Y192MihzdHJ1Y3Qga3JiNV9jdHggKmN0eCwgc3RydWN0DQo+IHhkcl9idWYgKnRleHQsDQo+ICAN Cj4gIAkvKiBTZXQgdXAgdGhlIHNlcXVlbmNlIG51bWJlci4gTm93IDY0LWJpdHMgaW4gY2xlYXIN Cj4gIAkgKiB0ZXh0IGFuZCB3L28gZGlyZWN0aW9uIGluZGljYXRvciAqLw0KPiAtCXNlcV9zZW5k X2JlNjQgPSBjcHVfdG9fYmU2NChnc3Nfc2VxX3NlbmQ2NF9mZXRjaF9hbmRfaW5jKGN0eCkpOw0K PiArCXNlcV9zZW5kX2JlNjQgPSBjcHVfdG9fYmU2NChhdG9taWM2NF9mZXRjaF9pbmMoJmN0eC0N Cj4gPnNlcV9zZW5kNjQpKTsNCj4gIAltZW1jcHkoa3JiNV9oZHIgKyA4LCAoY2hhciAqKSAmc2Vx X3NlbmRfYmU2NCwgOCk7DQo+ICANCj4gIAlpZiAoY3R4LT5pbml0aWF0ZSkgew0KPiBkaWZmIC0t Z2l0IGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMNCj4gYi9uZXQvc3VucnBj L2F1dGhfZ3NzL2dzc19rcmI1X3dyYXAuYw0KPiBpbmRleCA5NjJmYTg0ZTZkYjEuLjVjZGRlNmNi NzAzYSAxMDA2NDQNCj4gLS0tIGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMN Cj4gKysrIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMNCj4gQEAgLTIyOCw3 ICsyMjgsNyBAQCBnc3Nfd3JhcF9rZXJiZXJvc192MShzdHJ1Y3Qga3JiNV9jdHggKmtjdHgsIGlu dA0KPiBvZmZzZXQsDQo+ICANCj4gIAltZW1jcHkocHRyICsgR1NTX0tSQjVfVE9LX0hEUl9MRU4s IG1kNWNrc3VtLmRhdGEsDQo+IG1kNWNrc3VtLmxlbik7DQo+ICANCj4gLQlzZXFfc2VuZCA9IGdz c19zZXFfc2VuZF9mZXRjaF9hbmRfaW5jKGtjdHgpOw0KPiArCXNlcV9zZW5kID0gYXRvbWljX2Zl dGNoX2luYygma2N0eC0+c2VxX3NlbmQpOw0KPiAgDQo+ICAJLyogWFhYIHdvdWxkIHByb2JhYmx5 IGJlIG1vcmUgZWZmaWNpZW50IHRvIGNvbXB1dGUgY2hlY2tzdW0NCj4gIAkgKiBhbmQgZW5jcnlw dCBhdCB0aGUgc2FtZSB0aW1lOiAqLw0KPiBAQCAtNDc1LDcgKzQ3NSw3IEBAIGdzc193cmFwX2tl cmJlcm9zX3YyKHN0cnVjdCBrcmI1X2N0eCAqa2N0eCwgdTMyDQo+IG9mZnNldCwNCj4gIAkqYmUx NnB0cisrID0gMDsNCj4gIA0KPiAgCWJlNjRwdHIgPSAoX19iZTY0ICopYmUxNnB0cjsNCj4gLQkq YmU2NHB0ciA9IGNwdV90b19iZTY0KGdzc19zZXFfc2VuZDY0X2ZldGNoX2FuZF9pbmMoa2N0eCkp Ow0KPiArCSpiZTY0cHRyID0gY3B1X3RvX2JlNjQoYXRvbWljNjRfZmV0Y2hfaW5jKCZrY3R4LT5z ZXFfc2VuZDY0KSk7DQo+ICANCj4gIAllcnIgPSAoKmtjdHgtPmdrNWUtPmVuY3J5cHRfdjIpKGtj dHgsIG9mZnNldCwgYnVmLCBwYWdlcyk7DQo+ICAJaWYgKGVycikNCi0tIA0KVHJvbmQgTXlrbGVi dXN0DQpDVE8sIEhhbW1lcnNwYWNlIEluYw0KNDMwMCBFbCBDYW1pbm8gUmVhbCwgU3VpdGUgMTA1 DQpMb3MgQWx0b3MsIENBIDk0MDIyDQp3d3cuaGFtbWVyLnNwYWNlDQoNCg0K