From mboxrd@z Thu Jan 1 00:00:00 1970 From: Don Brace Subject: RE: [PATCH V2 07/12] hpsa: cleanup reset handler Date: Thu, 4 May 2017 18:29:41 +0000 Message-ID: <4993A297653ECB4581FA5C3C31323D1951D46F55@avsrvexchmbx1.microsemi.net> References: <149340349509.4102.15752249884898695693.stgit@brunhilda> <149340362829.4102.17902813963900092821.stgit@brunhilda> <89db33d1-7122-e7c9-4836-d8f0ed1cdbe2@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-dm3nam03on0064.outbound.protection.outlook.com ([104.47.41.64]:9296 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755833AbdEDSaF (ORCPT ); Thu, 4 May 2017 14:30:05 -0400 In-Reply-To: <89db33d1-7122-e7c9-4836-d8f0ed1cdbe2@redhat.com> Content-Language: en-US Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: Tomas Henzl , "joseph.szczypek@hpe.com" , Gerry Morong , John Hall , "jejb@linux.vnet.ibm.com" , Kevin Barnett , Mahesh Rajashekhara , Bader Ali - Saleh , "hch@infradead.org" , Scott Teel , Viswas G , Justin Lindley , Scott Benesh , "POSWALD@suse.com" Cc: "linux-scsi@vger.kernel.org" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUb21hcyBIZW56bCBbbWFpbHRv OnRoZW56bEByZWRoYXQuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgTWF5IDA0LCAyMDE3IDEwOjQ3 IEFNDQo+IFRvOiBEb24gQnJhY2UgPGRvbi5icmFjZUBtaWNyb3NlbWkuY29tPjsgam9zZXBoLnN6 Y3p5cGVrQGhwZS5jb207DQo+IEdlcnJ5IE1vcm9uZyA8Z2VycnkubW9yb25nQG1pY3Jvc2VtaS5j b20+OyBKb2huIEhhbGwNCj4gPEpvaG4uSGFsbEBtaWNyb3NlbWkuY29tPjsgamVqYkBsaW51eC52 bmV0LmlibS5jb207IEtldmluIEJhcm5ldHQNCj4gPGtldmluLmJhcm5ldHRAbWljcm9zZW1pLmNv bT47IE1haGVzaCBSYWphc2hla2hhcmENCj4gPG1haGVzaC5yYWphc2hla2hhcmFAbWljcm9zZW1p LmNvbT47IEJhZGVyIEFsaSAtIFNhbGVoDQo+IDxiYWRlci5hbGlzYWxlaEBtaWNyb3NlbWkuY29t PjsgaGNoQGluZnJhZGVhZC5vcmc7IFNjb3R0IFRlZWwNCj4gPHNjb3R0LnRlZWxAbWljcm9zZW1p LmNvbT47IFZpc3dhcyBHIDx2aXN3YXMuZ0BtaWNyb3NlbWkuY29tPjsgSnVzdGluDQo+IExpbmRs ZXkgPGp1c3Rpbi5saW5kbGV5QG1pY3Jvc2VtaS5jb20+OyBTY290dCBCZW5lc2gNCj4gPHNjb3R0 LmJlbmVzaEBtaWNyb3NlbWkuY29tPjsgUE9TV0FMREBzdXNlLmNvbQ0KPiBDYzogbGludXgtc2Nz aUB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCBWMiAwNy8xMl0gaHBzYTog Y2xlYW51cCByZXNldCBoYW5kbGVyDQo+IA0KPiBFWFRFUk5BTCBFTUFJTA0KPiANCj4gDQo+IE9u IDI4LjQuMjAxNyAyMDoyMCwgRG9uIEJyYWNlIHdyb3RlOg0KPiA+ICAtIG1hcmsgZGV2aWNlIHN0 YXRlIHNvb25lci4NCj4gPg0KPiA+IFJldmlld2VkLWJ5OiBTY290dCBCZW5lc2ggPHNjb3R0LmJl bmVzaEBtaWNyb3NlbWkuY29tPg0KPiA+IFJldmlld2VkLWJ5OiBTY290dCBUZWVsIDxzY290dC50 ZWVsQG1pY3Jvc2VtaS5jb20+DQo+ID4gUmV2aWV3ZWQtYnk6IEtldmluIEJhcm5ldHQgPGtldmlu LmJhcm5ldHRAbWljcm9zZW1pLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBEb24gQnJhY2UgPGRv bi5icmFjZUBtaWNyb3NlbWkuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL3Njc2kvaHBzYS5j IHwgICA1OQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0NCj4gPiAgZHJpdmVycy9zY3NpL2hwc2EuaCB8ICAgIDEgKw0KPiA+ICAyIGZpbGVzIGNo YW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvc2NzaS9ocHNhLmMgYi9kcml2ZXJzL3Njc2kvaHBzYS5jDQo+ID4gaW5k ZXggYTI4NTJkYS4uNzFmMzJlOSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3Njc2kvaHBzYS5j DQo+ID4gKysrIGIvZHJpdmVycy9zY3NpL2hwc2EuYw0KPiA+IEBAIC0xODU5LDEwICsxODU5LDEz IEBAIHN0YXRpYyB2b2lkIGFkanVzdF9ocHNhX3Njc2lfdGFibGUoc3RydWN0DQo+IGN0bHJfaW5m byAqaCwNCj4gPiAgICAgICAgKiBBIHJlc2V0IGNhbiBjYXVzZSBhIGRldmljZSBzdGF0dXMgdG8g Y2hhbmdlDQo+ID4gICAgICAgICogcmUtc2NoZWR1bGUgdGhlIHNjYW4gdG8gc2VlIHdoYXQgaGFw cGVuZWQuDQo+ID4gICAgICAgICovDQo+ID4gKyAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmgtPnJl c2V0X2xvY2ssIGZsYWdzKTsNCj4gPiAgICAgICBpZiAoaC0+cmVzZXRfaW5fcHJvZ3Jlc3MpIHsN Cj4gPiArICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmgtPnJlc2V0X2xvY2ss IGZsYWdzKTsNCj4gPiAgICAgICAgICAgICAgIGgtPmRydl9yZXFfcmVzY2FuID0gMTsNCj4gPiAg ICAgICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICB9DQo+ID4gKyAgICAgc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmaC0+cmVzZXRfbG9jaywgZmxhZ3MpOw0KPiA+DQo+ID4gICAgICAgYWRkZWQg PSBremFsbG9jKHNpemVvZigqYWRkZWQpICogSFBTQV9NQVhfREVWSUNFUywgR0ZQX0tFUk5FTCk7 DQo+ID4gICAgICAgcmVtb3ZlZCA9IGt6YWxsb2Moc2l6ZW9mKCpyZW1vdmVkKSAqIEhQU0FfTUFY X0RFVklDRVMsDQo+IEdGUF9LRVJORUwpOw0KPiA+IEBAIC01NjE4LDExICs1NjIxLDE0IEBAIHN0 YXRpYyB2b2lkIGhwc2Ffc2Nhbl9zdGFydChzdHJ1Y3QgU2NzaV9Ib3N0DQo+ICpzaCkNCj4gPiAg ICAgICAvKg0KPiA+ICAgICAgICAqIERvIHRoZSBzY2FuIGFmdGVyIGEgcmVzZXQgY29tcGxldGlv bg0KPiA+ICAgICAgICAqLw0KPiA+ICsgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZoLT5yZXNldF9s b2NrLCBmbGFncyk7DQo+ID4gICAgICAgaWYgKGgtPnJlc2V0X2luX3Byb2dyZXNzKSB7DQo+ID4g KyAgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZoLT5yZXNldF9sb2NrLCBmbGFn cyk7DQo+ID4gICAgICAgICAgICAgICBoLT5kcnZfcmVxX3Jlc2NhbiA9IDE7DQo+ID4gICAgICAg ICAgICAgICBocHNhX3NjYW5fY29tcGxldGUoaCk7DQo+ID4gICAgICAgICAgICAgICByZXR1cm47 DQo+ID4gICAgICAgfQ0KPiA+ICsgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmgtPnJlc2V0 X2xvY2ssIGZsYWdzKTsNCj4gDQo+IEhpIERvbiwNCj4gSSBnbGFkIHRoZSBzcGlubG9jayBoZWxw ZWQsIGJ1dCBob3cgaXMgdGhlIGNvZGUgcHJvdGVjdGVkIHdoZW4gYW5vdGhlcg0KPiB0aHJlYWQN Cj4gZW50ZXJzIGhwc2FfZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIgaW4gcGFyYWxsZWwgd2hlbiB0 aGUgZmlyc3QgdGhyZWFkIGp1c3QNCj4gY2FsbGVkIHRoZSAnc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmaC0+cmVzZXRfbG9jaycgPw0KPiANCj4gdG9tYXNoDQo+IA0KSSBhbSB3b25kZXJpbmcgIHRo YXQgdG9vIQ0KSSdsbCBjb3JyZWN0IHRoaXMgYW5kIHNlbmQgdXAgYSBWMy4NClRoYW5rcyBmb3Ig eW91ciByZXZpZXcgVG9tYXMuDQoNClRoYW5rcywNCkRvbiBCcmFjZQ0KRVNDIC0gU21hcnQgU3Rv cmFnZQ0KTWljcm9zZW1pIENvcnBvcmF0aW9uDQoNCg0KPiANCj4gDQo+ID4NCj4gPiAgICAgICBo cHNhX3VwZGF0ZV9zY3NpX2RldmljZXMoaCk7DQo+ID4NCj4gPiBAQCAtNTgzNCwyOCArNTg0MCwz OCBAQCBzdGF0aWMgaW50DQo+IHdhaXRfZm9yX2RldmljZV90b19iZWNvbWVfcmVhZHkoc3RydWN0 IGN0bHJfaW5mbyAqaCwNCj4gPiAgICovDQo+ID4gIHN0YXRpYyBpbnQgaHBzYV9laF9kZXZpY2Vf cmVzZXRfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpzY3NpY21kKQ0KPiA+ICB7DQo+ID4gLSAg ICAgaW50IHJjOw0KPiA+ICsgICAgIGludCByYyA9IFNVQ0NFU1M7DQo+ID4gICAgICAgc3RydWN0 IGN0bHJfaW5mbyAqaDsNCj4gPiAgICAgICBzdHJ1Y3QgaHBzYV9zY3NpX2Rldl90ICpkZXY7DQo+ ID4gICAgICAgdTggcmVzZXRfdHlwZTsNCj4gPiAgICAgICBjaGFyIG1zZ1s0OF07DQo+ID4gKyAg ICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4gPg0KPiA+ICAgICAgIC8qIGZpbmQgdGhlIGNvbnRy b2xsZXIgdG8gd2hpY2ggdGhlIGNvbW1hbmQgdG8gYmUgYWJvcnRlZCB3YXMgc2VudCAqLw0KPiA+ ICAgICAgIGggPSBzZGV2X3RvX2hiYShzY3NpY21kLT5kZXZpY2UpOw0KPiA+ICAgICAgIGlmICho ID09IE5VTEwpIC8qIHBhcmFub2lhICovDQo+ID4gICAgICAgICAgICAgICByZXR1cm4gRkFJTEVE Ow0KPiA+DQo+ID4gLSAgICAgaWYgKGxvY2t1cF9kZXRlY3RlZChoKSkNCj4gPiAtICAgICAgICAg ICAgIHJldHVybiBGQUlMRUQ7DQo+ID4gKyAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmgtPnJlc2V0 X2xvY2ssIGZsYWdzKTsNCj4gPiArICAgICBoLT5yZXNldF9pbl9wcm9ncmVzcyA9IDE7DQo+ID4g KyAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaC0+cmVzZXRfbG9jaywgZmxhZ3MpOw0KPiA+ ICsNCj4gPiArICAgICBpZiAobG9ja3VwX2RldGVjdGVkKGgpKSB7DQo+ID4gKyAgICAgICAgICAg ICByYyA9IEZBSUxFRDsNCj4gPiArICAgICAgICAgICAgIGdvdG8gcmV0dXJuX3Jlc2V0X3N0YXR1 czsNCj4gPiArICAgICB9DQo+ID4NCj4gPiAgICAgICBkZXYgPSBzY3NpY21kLT5kZXZpY2UtPmhv c3RkYXRhOw0KPiA+ICAgICAgIGlmICghZGV2KSB7DQo+ID4gICAgICAgICAgICAgICBkZXZfZXJy KCZoLT5wZGV2LT5kZXYsICIlczogZGV2aWNlIGxvb2t1cCBmYWlsZWRcbiIsIF9fZnVuY19fKTsN Cj4gPiAtICAgICAgICAgICAgIHJldHVybiBGQUlMRUQ7DQo+ID4gKyAgICAgICAgICAgICByYyA9 IEZBSUxFRDsNCj4gPiArICAgICAgICAgICAgIGdvdG8gcmV0dXJuX3Jlc2V0X3N0YXR1czsNCj4g PiAgICAgICB9DQo+ID4NCj4gPiAtICAgICBpZiAoZGV2LT5kZXZ0eXBlID09IFRZUEVfRU5DTE9T VVJFKQ0KPiA+IC0gICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1M7DQo+ID4gKyAgICAgaWYgKGRl di0+ZGV2dHlwZSA9PSBUWVBFX0VOQ0xPU1VSRSkgew0KPiA+ICsgICAgICAgICAgICAgcmMgPSBT VUNDRVNTOw0KPiA+ICsgICAgICAgICAgICAgZ290byByZXR1cm5fcmVzZXRfc3RhdHVzOw0KPiA+ ICsgICAgIH0NCj4gPg0KPiA+ICAgICAgIC8qIGlmIGNvbnRyb2xsZXIgbG9ja2VkIHVwLCB3ZSBj YW4gZ3VhcmFudGVlIGNvbW1hbmQgd29uJ3QgY29tcGxldGUNCj4gKi8NCj4gPiAgICAgICBpZiAo bG9ja3VwX2RldGVjdGVkKGgpKSB7DQo+ID4gQEAgLTU4NjMsNyArNTg3OSw4IEBAIHN0YXRpYyBp bnQgaHBzYV9laF9kZXZpY2VfcmVzZXRfaGFuZGxlcihzdHJ1Y3QNCj4gc2NzaV9jbW5kICpzY3Np Y21kKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgImNtZCAlZCBSRVNFVCBGQUlMRUQsIGxv Y2t1cCBkZXRlY3RlZCIsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICBocHNhX2dldF9jbWRf aW5kZXgoc2NzaWNtZCkpOw0KPiA+ICAgICAgICAgICAgICAgaHBzYV9zaG93X2Rldl9tc2coS0VS Tl9XQVJOSU5HLCBoLCBkZXYsIG1zZyk7DQo+ID4gLSAgICAgICAgICAgICByZXR1cm4gRkFJTEVE Ow0KPiA+ICsgICAgICAgICAgICAgcmMgPSBGQUlMRUQ7DQo+ID4gKyAgICAgICAgICAgICBnb3Rv IHJldHVybl9yZXNldF9zdGF0dXM7DQo+ID4gICAgICAgfQ0KPiA+DQo+ID4gICAgICAgLyogdGhp cyByZXNldCByZXF1ZXN0IG1pZ2h0IGJlIHRoZSByZXN1bHQgb2YgYSBsb2NrdXA7IGNoZWNrICov DQo+ID4gQEAgLTU4NzIsMTIgKzU4ODksMTUgQEAgc3RhdGljIGludCBocHNhX2VoX2RldmljZV9y ZXNldF9oYW5kbGVyKHN0cnVjdA0KPiBzY3NpX2NtbmQgKnNjc2ljbWQpDQo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAiY21kICVkIFJFU0VUIEZBSUxFRCwgbmV3IGxvY2t1cCBkZXRlY3RlZCIs DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICBocHNhX2dldF9jbWRfaW5kZXgoc2NzaWNtZCkp Ow0KPiA+ICAgICAgICAgICAgICAgaHBzYV9zaG93X2Rldl9tc2coS0VSTl9XQVJOSU5HLCBoLCBk ZXYsIG1zZyk7DQo+ID4gLSAgICAgICAgICAgICByZXR1cm4gRkFJTEVEOw0KPiA+ICsgICAgICAg ICAgICAgcmMgPSBGQUlMRUQ7DQo+ID4gKyAgICAgICAgICAgICBnb3RvIHJldHVybl9yZXNldF9z dGF0dXM7DQo+ID4gICAgICAgfQ0KPiA+DQo+ID4gICAgICAgLyogRG8gbm90IGF0dGVtcHQgb24g Y29udHJvbGxlciAqLw0KPiA+IC0gICAgIGlmIChpc19oYmFfbHVuaWQoZGV2LT5zY3NpM2FkZHIp KQ0KPiA+IC0gICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1M7DQo+ID4gKyAgICAgaWYgKGlzX2hi YV9sdW5pZChkZXYtPnNjc2kzYWRkcikpIHsNCj4gPiArICAgICAgICAgICAgIHJjID0gU1VDQ0VT UzsNCj4gPiArICAgICAgICAgICAgIGdvdG8gcmV0dXJuX3Jlc2V0X3N0YXR1czsNCj4gPiArICAg ICB9DQo+ID4NCj4gPiAgICAgICBpZiAoaXNfbG9naWNhbF9kZXZfYWRkcl9tb2RlKGRldi0+c2Nz aTNhZGRyKSkNCj4gPiAgICAgICAgICAgICAgIHJlc2V0X3R5cGUgPSBIUFNBX0RFVklDRV9SRVNF VF9NU0c7DQo+ID4gQEAgLTU4ODgsMTcgKzU5MDgsMjQgQEAgc3RhdGljIGludCBocHNhX2VoX2Rl dmljZV9yZXNldF9oYW5kbGVyKHN0cnVjdA0KPiBzY3NpX2NtbmQgKnNjc2ljbWQpDQo+ID4gICAg ICAgICAgICAgICByZXNldF90eXBlID09IEhQU0FfREVWSUNFX1JFU0VUX01TRyA/ICJsb2dpY2Fs ICIgOiAicGh5c2ljYWwgIik7DQo+ID4gICAgICAgaHBzYV9zaG93X2Rldl9tc2coS0VSTl9XQVJO SU5HLCBoLCBkZXYsIG1zZyk7DQo+ID4NCj4gPiAtICAgICBoLT5yZXNldF9pbl9wcm9ncmVzcyA9 IDE7DQo+ID4gLQ0KPiA+ICAgICAgIC8qIHNlbmQgYSByZXNldCB0byB0aGUgU0NTSSBMVU4gd2hp Y2ggdGhlIGNvbW1hbmQgd2FzIHNlbnQgdG8gKi8NCj4gPiAgICAgICByYyA9IGhwc2FfZG9fcmVz ZXQoaCwgZGV2LCBkZXYtPnNjc2kzYWRkciwgcmVzZXRfdHlwZSwNCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgREVGQVVMVF9SRVBMWV9RVUVVRSk7DQo+ID4gKyAgICAgaWYgKHJjID09IDAp DQo+ID4gKyAgICAgICAgICAgICByYyA9IFNVQ0NFU1M7DQo+ID4gKyAgICAgZWxzZQ0KPiA+ICsg ICAgICAgICAgICAgcmMgPSBGQUlMRUQ7DQo+ID4gKw0KPiA+ICAgICAgIHNwcmludGYobXNnLCAi cmVzZXQgJXMgJXMiLA0KPiA+ICAgICAgICAgICAgICAgcmVzZXRfdHlwZSA9PSBIUFNBX0RFVklD RV9SRVNFVF9NU0cgPyAibG9naWNhbCAiIDogInBoeXNpY2FsICIsDQo+ID4gLSAgICAgICAgICAg ICByYyA9PSAwID8gImNvbXBsZXRlZCBzdWNjZXNzZnVsbHkiIDogImZhaWxlZCIpOw0KPiA+ICsg ICAgICAgICAgICAgcmMgPT0gU1VDQ0VTUyA/ICJjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IiA6ICJm YWlsZWQiKTsNCj4gPiAgICAgICBocHNhX3Nob3dfZGV2X21zZyhLRVJOX1dBUk5JTkcsIGgsIGRl diwgbXNnKTsNCj4gPiArDQo+ID4gK3JldHVybl9yZXNldF9zdGF0dXM6DQo+ID4gKyAgICAgc3Bp bl9sb2NrX2lycXNhdmUoJmgtPnJlc2V0X2xvY2ssIGZsYWdzKTsNCj4gPiAgICAgICBoLT5yZXNl dF9pbl9wcm9ncmVzcyA9IDA7DQo+ID4gLSAgICAgcmV0dXJuIHJjID09IDAgPyBTVUNDRVNTIDog RkFJTEVEOw0KPiA+ICsgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmgtPnJlc2V0X2xvY2ss IGZsYWdzKTsNCj4gPiArICAgICByZXR1cm4gcmM7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMg dm9pZCBzd2l6emxlX2Fib3J0X3RhZyh1OCAqdGFnKQ0KPiA+IEBAIC04NjQ5LDEwICs4Njc2LDEz IEBAIHN0YXRpYyB2b2lkIGhwc2FfcmVzY2FuX2N0bHJfd29ya2VyKHN0cnVjdA0KPiB3b3JrX3N0 cnVjdCAqd29yaykNCj4gPiAgICAgICAvKg0KPiA+ICAgICAgICAqIERvIHRoZSBzY2FuIGFmdGVy IHRoZSByZXNldA0KPiA+ICAgICAgICAqLw0KPiA+ICsgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZo LT5yZXNldF9sb2NrLCBmbGFncyk7DQo+ID4gICAgICAgaWYgKGgtPnJlc2V0X2luX3Byb2dyZXNz KSB7DQo+ID4gKyAgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZoLT5yZXNldF9s b2NrLCBmbGFncyk7DQo+ID4gICAgICAgICAgICAgICBoLT5kcnZfcmVxX3Jlc2NhbiA9IDE7DQo+ ID4gICAgICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgfQ0KPiA+ICsgICAgIHNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmgtPnJlc2V0X2xvY2ssIGZsYWdzKTsNCj4gPg0KPiA+ICAgICAgIGlm IChocHNhX2N0bHJfbmVlZHNfcmVzY2FuKGgpIHx8IGhwc2Ffb2ZmbGluZV9kZXZpY2VzX3JlYWR5 KGgpKSB7DQo+ID4gICAgICAgICAgICAgICBzY3NpX2hvc3RfZ2V0KGgtPnNjc2lfaG9zdCk7DQo+ ID4gQEAgLTg3NTksNiArODc4OSw3IEBAIHN0YXRpYyBpbnQgaHBzYV9pbml0X29uZShzdHJ1Y3Qg cGNpX2RldiAqcGRldiwNCj4gY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkNCj4gPiAg ICAgICBzcGluX2xvY2tfaW5pdCgmaC0+bG9jayk7DQo+ID4gICAgICAgc3Bpbl9sb2NrX2luaXQo JmgtPm9mZmxpbmVfZGV2aWNlX2xvY2spOw0KPiA+ICAgICAgIHNwaW5fbG9ja19pbml0KCZoLT5z Y2FuX2xvY2spOw0KPiA+ICsgICAgIHNwaW5fbG9ja19pbml0KCZoLT5yZXNldF9sb2NrKTsNCj4g PiAgICAgICBhdG9taWNfc2V0KCZoLT5wYXNzdGhydV9jbWRzX2F2YWlsLA0KPiBIUFNBX01BWF9D T05DVVJSRU5UX1BBU1NUSFJVUyk7DQo+ID4gICAgICAgYXRvbWljX3NldCgmaC0+YWJvcnRfY21k c19hdmFpbGFibGUsDQo+IEhQU0FfQ01EU19SRVNFUlZFRF9GT1JfQUJPUlRTKTsNCj4gPg0KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaHBzYS5oIGIvZHJpdmVycy9zY3NpL2hwc2EuaA0K PiA+IGluZGV4IDZmMDRmMmEuLjUzNTI2NjQgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9zY3Np L2hwc2EuaA0KPiA+ICsrKyBiL2RyaXZlcnMvc2NzaS9ocHNhLmgNCj4gPiBAQCAtMzAxLDYgKzMw MSw3IEBAIHN0cnVjdCBjdGxyX2luZm8gew0KPiA+ICAgICAgIHN0cnVjdCBtdXRleCByZXNldF9t dXRleDsNCj4gPiAgICAgICB1OCByZXNldF9pbl9wcm9ncmVzczsNCj4gPiAgICAgICBzdHJ1Y3Qg aHBzYV9zYXNfbm9kZSAqc2FzX2hvc3Q7DQo+ID4gKyAgICAgc3BpbmxvY2tfdCByZXNldF9sb2Nr Ow0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0cnVjdCBvZmZsaW5lX2RldmljZV9lbnRyeSB7DQo+ID4N Cg0K