From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bart Van Assche Subject: Re: [PATCH 1/2] qla2xxx: Fix a recently introduced memory leak Date: Wed, 25 Jan 2017 15:47:20 +0000 Message-ID: <1485359225.3093.3.camel@sandisk.com> References: <20170123163446.9227-1-bart.vanassche@sandisk.com> <20170123163446.9227-2-bart.vanassche@sandisk.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-by2nam03on0073.outbound.protection.outlook.com ([104.47.42.73]:30074 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751644AbdAYPrb (ORCPT ); Wed, 25 Jan 2017 10:47:31 -0500 In-Reply-To: <20170123163446.9227-2-bart.vanassche@sandisk.com> Content-Language: en-US Content-ID: <089263747901F0429CF0CBAD51A9606A@sandisk.com> Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: "hch@lst.de" Cc: "linux-scsi@vger.kernel.org" T24gTW9uLCAyMDE3LTAxLTIzIGF0IDA4OjM0IC0wODAwLCBCYXJ0IFZhbiBBc3NjaGUgd3JvdGU6 DQo+IHFsYTJ4MDBfcHJvYmVfb25lKCkgYWxsb2NhdGVzIElSUXMgYmVmb3JlIGl0IGluaXRpYWxp emVzIHJzcF9xX21hcA0KPiBzbyBJUlFzIG11c3QgYmUgZnJlZWQgZXZlbiBpZiByc3BfcV9tYXAg YWxsb2NhdGlvbiBkaWQgbm90IG9jY3VyLg0KPiBUaGlzIHdhcyBkZXRlY3RlZCBieSBrbWVtbGVh ay4NCj4gDQo+IEZpeGVzOiA0ZmExODM0NTU5ODggKCJzY3NpOiBxbGEyeHh4OiBVdGlsaXplIHBj aV9hbGxvY19pcnFfdmVjdG9ycy9wY2lfZnJlZV9pcnFfdmVjdG9ycyBjYWxscyIpDQo+IFNpZ25l ZC1vZmYtYnk6IEJhcnQgVmFuIEFzc2NoZSA8YmFydC52YW5hc3NjaGVAc2FuZGlzay5jb20+DQo+ IENjOiBNaWNoYWVsIEhlcm5hbmRleiA8bWljaGFlbC5oZXJuYW5kZXpAY2F2aXVtLmNvbT4NCj4g Q2M6IEhpbWFuc2h1IE1hZGhhbmkgPGhpbWFuc2h1Lm1hZGhhbmlAY2F2aXVtLmNvbT4NCj4gQ2M6 IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPg0KPiBDYzogPHN0YWJsZUB2Z2VyLmtlcm5l bC5vcmc+DQo+IC0tLQ0KPiAgZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lzci5jIHwgMyArKy0N Cj4gIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gDQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaXNyLmMgYi9kcml2ZXJzL3Nj c2kvcWxhMnh4eC9xbGFfaXNyLmMNCj4gaW5kZXggZGM4OGEwOWY5MDQzLi5hOTRiMGI2YmQwMzAg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pc3IuYw0KPiArKysgYi9k cml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaXNyLmMNCj4gQEAgLTMyNDIsNyArMzI0Miw3IEBAIHFs YTJ4MDBfZnJlZV9pcnFzKHNjc2lfcWxhX2hvc3RfdCAqdmhhKQ0KPiAgCSAqIGZyb20gYSBwcm9i ZSBmYWlsdXJlIGNvbnRleHQuDQo+ICAJICovDQo+ICAJaWYgKCFoYS0+cnNwX3FfbWFwIHx8ICFo YS0+cnNwX3FfbWFwWzBdKQ0KPiAtCQlyZXR1cm47DQo+ICsJCWdvdG8gZnJlZV9pcnFzOw0KPiAg CXJzcCA9IGhhLT5yc3BfcV9tYXBbMF07DQo+ICANCj4gIAlpZiAoaGEtPmZsYWdzLm1zaXhfZW5h YmxlZCkgew0KPiBAQCAtMzI2Miw2ICszMjYyLDcgQEAgcWxhMngwMF9mcmVlX2lycXMoc2NzaV9x bGFfaG9zdF90ICp2aGEpDQo+ICAJCWZyZWVfaXJxKHBjaV9pcnFfdmVjdG9yKGhhLT5wZGV2LCAw KSwgcnNwKTsNCj4gIAl9DQo+ICANCj4gK2ZyZWVfaXJxczoNCj4gIAlwY2lfZnJlZV9pcnFfdmVj dG9ycyhoYS0+cGRldik7DQo+ICB9DQoNCkhlbGxvIENocmlzdG9waCwNCg0KV2hlbiBJIHRlc3Rl ZCB0aGlzIHBhdGNoIGZvciB0aGUgZmlyc3QgdGltZSBvbiBteSB0ZXN0IHNldHVwIGFsbCBteSB0 ZXN0cw0KcGFzc2VkLiBIb3dldmVyLCB3aGVuIEkgcmV0ZXN0ZWQgdGhpcyBwYXRjaCB5ZXN0ZXJk YXkgdGhlIFNMVUIgZGVidWcgY29kZQ0KdHJpZ2dlcmVkIGEgY29tcGxhaW50LiBJIGRvbid0IHNl ZSBob3cgbXkgcGF0Y2ggY291bGQgaGF2ZSBjYXVzZWQgdGhpcw0KY29tcGxhaW50LiBDYW4geW91 IG9yIHNvbWVvbmUgZWxzZSB3aG8gaXMgZmFtaWxpYXIgd2l0aCB0aGUNCnBjaV9hbGxvY19pcnFf dmVjdG9yc19hZmZpbml0eSgpIC8gcGNpX2ZyZWVfaXJxX3ZlY3RvcnMoKSBoYXZlIGEgbG9vayBh dA0KdGhlIG91dHB1dCBiZWxvdz8gVGhhdCBvdXRwdXQgaXMgdHJpZ2dlcmVkIGV2ZXJ5IHRpbWUg dGhlIHFsYTJ4eHgga2VybmVsDQppcyBsb2FkZWQgaW4gYSB2aXJ0dWFsIG1hY2hpbmUgdG8gd2hp Y2ggdHdvIFFMb2dpYyBGQyBhZGFwdGVycyBoYWQgYmVlbg0KYXNzaWduZWQgdmlhIFBDSWUgcGFz c3Rocm91Z2guDQoNClRoYW5rcywNCg0KQmFydC4NCg0KcWxhMnh4eCBbMDAwMDowMDowMC4wXS0w MDA1OiA6IFFMb2dpYyBGaWJyZSBDaGFubmVsIEhCQSBEcml2ZXI6IDguMDcuMDAuMzgtay4NCnFs YTJ4eHggWzAwMDA6MDA6MDkuMF0tMDAxZDogOiBGb3VuZCBhbiBJU1AyNDMyIGlycSAxMCBpb2Jh c2UgMHhmZmZmYzkwMDAwMDlkMDAwLg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkJVRyBrbWFsbG9j LTE2IChOb3QgdGFpbnRlZCk6IFJlZHpvbmUgb3ZlcndyaXR0ZW4NCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQoNCkRpc2FibGluZyBsb2NrIGRlYnVnZ2luZyBkdWUgdG8ga2VybmVsIHRhaW50DQpJTkZP OiAweGZmZmY4ODAwMzBiYWNjNzgtMHhmZmZmODgwMDMwYmFjYzdmLiBGaXJzdCBieXRlIDB4ZiBp bnN0ZWFkIG9mIDB4Y2MNCklORk86IEFsbG9jYXRlZCBpbiBpcnFfY3JlYXRlX2FmZmluaXR5X21h c2tzKzB4NWYvMHgyNjAgYWdlPTAgY3B1PTMgcGlkPTgxMg0KCV9fX3NsYWJfYWxsb2MuY29uc3Rw cm9wLjc5KzB4NDgyLzB4NGYwDQoJX19zbGFiX2FsbG9jLmlzcmEuNzUuY29uc3Rwcm9wLjc4KzB4 NTUvMHhhMA0KCV9fa21hbGxvYysweDI3Yy8weDMxMA0KCWlycV9jcmVhdGVfYWZmaW5pdHlfbWFz a3MrMHg1Zi8weDI2MA0KCV9fcGNpX2VuYWJsZV9tc2l4KzB4MzE0LzB4NGMwDQoJcGNpX2FsbG9j X2lycV92ZWN0b3JzX2FmZmluaXR5KzB4YjcvMHgxNDANCglxbGEyeDAwX3JlcXVlc3RfaXJxcysw eGE2LzB4NmQwIFtxbGEyeHh4XQ0KCXFsYTJ4MDBfcHJvYmVfb25lKzB4YzJlLzB4MjVmMCBbcWxh Mnh4eF0NCglwY2lfZGV2aWNlX3Byb2JlKzB4OGEvMHhmMA0KCWRyaXZlcl9wcm9iZV9kZXZpY2Ur MHgxZjUvMHg0NTANCglfX2RyaXZlcl9hdHRhY2grMHhlMy8weGYwDQoJYnVzX2Zvcl9lYWNoX2Rl disweDY2LzB4YTANCglkcml2ZXJfYXR0YWNoKzB4MWUvMHgyMA0KCWJ1c19hZGRfZHJpdmVyKzB4 MjAwLzB4MjcwDQoJZHJpdmVyX3JlZ2lzdGVyKzB4NjAvMHhlMA0KCV9fcGNpX3JlZ2lzdGVyX2Ry aXZlcisweDVkLzB4NjANCklORk86IEZyZWVkIGluIGFjcGlfbnNfZ2V0X25vZGVfdW5sb2NrZWQr MHg5MC8weGE0IGFnZT0wIGNwdT0zIHBpZD04MTINCglfX3NsYWJfZnJlZSsweDE3Ni8weDMxMA0K CWtmcmVlKzB4MjVlLzB4MmQwDQoJYWNwaV9uc19nZXRfbm9kZV91bmxvY2tlZCsweDkwLzB4YTQN CglhY3BpX25zX2dldF9ub2RlKzB4M2QvMHg1Mg0KCWFjcGlfZ2V0X2hhbmRsZSsweDgyLzB4OTYN CglhY3BpX3BjaV9pcnFfZmluZF9wcnRfZW50cnkrMHgyNmUvMHgyYWUNCglhY3BpX3BjaV9pcnFf bG9va3VwKzB4MjgvMHgxMzUNCglhY3BpX3BjaV9pcnFfZW5hYmxlKzB4NjAvMHgxZjgNCglwY2li aW9zX2VuYWJsZV9kZXZpY2UrMHgyZC8weDMwDQoJZG9fcGNpX2VuYWJsZV9kZXZpY2UrMHg2NC8w eGYwDQoJcGNpX2VuYWJsZV9kZXZpY2VfZmxhZ3MrMHhjNS8weDExMA0KCXBjaV9lbmFibGVfZGV2 aWNlX21lbSsweDEzLzB4MjANCglxbGEyeDAwX3Byb2JlX29uZSsweDE0Yi8weDI1ZjAgW3FsYTJ4 eHhdDQoJcGNpX2RldmljZV9wcm9iZSsweDhhLzB4ZjANCglkcml2ZXJfcHJvYmVfZGV2aWNlKzB4 MWY1LzB4NDUwDQoJX19kcml2ZXJfYXR0YWNoKzB4ZTMvMHhmMA0KSU5GTzogU2xhYiAweGZmZmZl YTAwMDBjMmViMDAgb2JqZWN0cz0yMyB1c2VkPTIxIGZwPTB4ZmZmZjg4MDAzMGJhY2RjOCBmbGFn cz0weDQwMDAwMDAwMDAwMDgxMDENCklORk86IE9iamVjdCAweGZmZmY4ODAwMzBiYWNjNjggQG9m ZnNldD0zMTc2IGZwPTB4ZmZmZjg4MDAzMGJhY2YyOA0KDQpSZWR6b25lIGZmZmY4ODAwMzBiYWNj NjA6IGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4u Li4uLg0KT2JqZWN0IGZmZmY4ODAwMzBiYWNjNjg6IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGZm IDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uDQpSZWR6b25lIGZmZmY4ODAw MzBiYWNjNzg6IDBmIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAuLi4uLi4uLg0KUGFkZGluZyBmZmZmODgwMDMwYmFjZGI4OiA1YSA1YSA1YSA1YSA1YSA1YSA1 YSA1YSAgICAgICAgICAgICAgICAgICAgICAgICAgWlpaWlpaWloNCkNQVTogMyBQSUQ6IDgxMiBD b21tOiBtb2Rwcm9iZSBUYWludGVkOiBHICAgIEIgICAgICAgICAgIDQuMTAuMC1yYzUtZGJnKyAj OQ0KSGFyZHdhcmUgbmFtZTogQm9jaHMgQm9jaHMsIEJJT1MgQm9jaHMgMDEvMDEvMjAxMQ0KQ2Fs bCBUcmFjZToNCiBkdW1wX3N0YWNrKzB4ODUvMHhjMg0KIHByaW50X3RyYWlsZXIrMHgxNjIvMHgy NjANCiBjaGVja19ieXRlc19hbmRfcmVwb3J0KzB4YzUvMHgxMTANCiBjaGVja19vYmplY3QrMHgx ZGEvMHgyYTANCiBmcmVlX2RlYnVnX3Byb2Nlc3NpbmcrMHgxNjEvMHgzZDANCiA/IGRlYnVnX2xv Y2tkZXBfcmN1X2VuYWJsZWQrMHgxZC8weDIwDQogPyBfX3BjaV9lbmFibGVfbXNpeCsweDQxYy8w eDRjMA0KIF9fc2xhYl9mcmVlKzB4MTc2LzB4MzEwDQogPyBfX3BjaV9lbmFibGVfbXNpeCsweDQx Yy8weDRjMA0KID8gY2FsbF9yY3UrMHgxNy8weDIwDQogPyBrZnJlZSsweGU3LzB4MmQwDQogPyBf X3BjaV9lbmFibGVfbXNpeCsweDQxYy8weDRjMA0KID8gX19wY2lfZW5hYmxlX21zaXgrMHg0MWMv MHg0YzANCiBrZnJlZSsweDI1ZS8weDJkMA0KIF9fcGNpX2VuYWJsZV9tc2l4KzB4NDFjLzB4NGMw DQogcGNpX2FsbG9jX2lycV92ZWN0b3JzX2FmZmluaXR5KzB4YjcvMHgxNDANCiBxbGEyeDAwX3Jl cXVlc3RfaXJxcysweGE2LzB4NmQwIFtxbGEyeHh4XQ0KIHFsYTJ4MDBfcHJvYmVfb25lKzB4YzJl LzB4MjVmMCBbcWxhMnh4eF0NCiA/IF9fcG1fcnVudGltZV9yZXN1bWUrMHg0MC8weDgwDQogPyB0 cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIrMHgxMjgvMHgxYjANCiA/IHRyYWNlX2hhcmRpcnFzX29u KzB4ZC8weDEwDQogPyBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHg0YS8weDgwDQogcGNp X2RldmljZV9wcm9iZSsweDhhLzB4ZjANCiBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4MWY1LzB4NDUw DQogX19kcml2ZXJfYXR0YWNoKzB4ZTMvMHhmMA0KID8gZHJpdmVyX3Byb2JlX2RldmljZSsweDQ1 MC8weDQ1MA0KIGJ1c19mb3JfZWFjaF9kZXYrMHg2Ni8weGEwDQogZHJpdmVyX2F0dGFjaCsweDFl LzB4MjANCiBidXNfYWRkX2RyaXZlcisweDIwMC8weDI3MA0KID8gMHhmZmZmZmZmZmEwNGViMDAw DQogZHJpdmVyX3JlZ2lzdGVyKzB4NjAvMHhlMA0KID8gMHhmZmZmZmZmZmEwNGViMDAwDQogX19w Y2lfcmVnaXN0ZXJfZHJpdmVyKzB4NWQvMHg2MA0KIHFsYTJ4MDBfbW9kdWxlX2luaXQrMHgxYzkv MHgyMTcgW3FsYTJ4eHhdDQogZG9fb25lX2luaXRjYWxsKzB4NDQvMHgxODANCiA/IHJjdV9yZWFk X2xvY2tfc2NoZWRfaGVsZCsweDcyLzB4ODANCiA/IGttZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHgy NWIvMHgyYzANCiA/IGRvX2luaXRfbW9kdWxlKzB4MjcvMHgxZjkNCiBkb19pbml0X21vZHVsZSsw eDVmLzB4MWY5DQogbG9hZF9tb2R1bGUrMHgyNTgyLzB4MmEwMA0KID8gX19zeW1ib2xfcHV0KzB4 NzAvMHg3MA0KID8ga2VybmVsX3JlYWRfZmlsZSsweDEwYS8weDFhMA0KID8ga2VybmVsX3JlYWRf ZmlsZV9mcm9tX2ZkKzB4NDkvMHg4MA0KIFNZU0NfZmluaXRfbW9kdWxlKzB4YmMvMHhmMA0KIFN5 U19maW5pdF9tb2R1bGUrMHhlLzB4MTANCiBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MjMv MHhjNg0KUklQOiAwMDMzOjB4N2YwNTcxMTM4OGU5DQpSU1A6IDAwMmI6MDAwMDdmZmY1MWQ0YTBm OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMTM5DQpSQVg6IGZmZmZm ZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAzIFJDWDogMDAwMDdmMDU3MTEzODhlOQ0K UkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDU1YzE3YWI0ZjcyMCBSREk6IDAwMDAwMDAw MDAwMDAwMDQNClJCUDogMDAwMDdmZmY1MWQ0OTEwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5 OiAwMDAwMDAwMDAwMDAwMDE5DQpSMTA6IDAwMDAwMDAwMDAwMDAwMDQgUjExOiAwMDAwMDAwMDAw MDAwMjQ2IFIxMjogMDAwMDU1YzE3YWI0ZjU3MA0KUjEzOiAwMDAwN2ZmZjUxZDQ5MGUwIFIxNDog MDAwMDAwMDAwMDAwMDAwNSBSMTU6IDAwMDAwMDAwMDAwNDAwMDANCkZJWCBrbWFsbG9jLTE2OiBS ZXN0b3JpbmcgMHhmZmZmODgwMDMwYmFjYzc4LTB4ZmZmZjg4MDAzMGJhY2M3Zj0weGNjDQoNCkZJ WCBrbWFsbG9jLTE2OiBPYmplY3QgYXQgMHhmZmZmODgwMDMwYmFjYzY4IG5vdCBmcmVlZA0Kc2Nz aSBob3N0MjogcWxhMnh4eA0KcWxhMnh4eCBbMDAwMDowMDowOS4wXS0wMGZiOjI6IFFMb2dpYyBR TEUyNDYwIC0gUUxvZ2ljIDRHQiBGQyBTaW5nbGUtUG9ydCBQQ0ktRSBIQkEgZm9yIElCTSBTeXN0 ZW0geC4NCnFsYTJ4eHggWzAwMDA6MDA6MDkuMF0tMDBmYzoyOiBJU1AyNDMyOiBQQ0llICgyLjVH VC9zIHg0KSBAIDAwMDA6MDA6MDkuMCBoZG1hLSBob3N0Iz0yIGZ3PTguMDMuMDAgKDk0OTYpLg0K cWxhMnh4eCBbMDAwMDowMDowYS4wXS0wMDFkOiA6IEZvdW5kIGFuIElTUDI0MzIgaXJxIDEwIGlv YmFzZSAweGZmZmZjOTAwMDAwYWQwMDAuDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQlVHIGttYWxs b2MtMTYgKFRhaW50ZWQ6IEcgICAgQiAgICAgICAgICApOiBSZWR6b25lIG92ZXJ3cml0dGVuDQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpJTkZPOiAweGZmZmY4ODAwNmZmMThkZDgtMHhmZmZmODgw MDZmZjE4ZGRmLiBGaXJzdCBieXRlIDB4ZiBpbnN0ZWFkIG9mIDB4Y2MNCklORk86IEFsbG9jYXRl ZCBpbiBpcnFfY3JlYXRlX2FmZmluaXR5X21hc2tzKzB4NWYvMHgyNjAgYWdlPTAgY3B1PTIgcGlk PTgxMg0KCV9fX3NsYWJfYWxsb2MuY29uc3Rwcm9wLjc5KzB4NDgyLzB4NGYwDQoJX19zbGFiX2Fs bG9jLmlzcmEuNzUuY29uc3Rwcm9wLjc4KzB4NTUvMHhhMA0KCV9fa21hbGxvYysweDI3Yy8weDMx MA0KCWlycV9jcmVhdGVfYWZmaW5pdHlfbWFza3MrMHg1Zi8weDI2MA0KCV9fcGNpX2VuYWJsZV9t c2l4KzB4MzE0LzB4NGMwDQoJcGNpX2FsbG9jX2lycV92ZWN0b3JzX2FmZmluaXR5KzB4YjcvMHgx NDANCglxbGEyeDAwX3JlcXVlc3RfaXJxcysweGE2LzB4NmQwIFtxbGEyeHh4XQ0KCXFsYTJ4MDBf cHJvYmVfb25lKzB4YzJlLzB4MjVmMCBbcWxhMnh4eF0NCglwY2lfZGV2aWNlX3Byb2JlKzB4OGEv MHhmMA0KCWRyaXZlcl9wcm9iZV9kZXZpY2UrMHgxZjUvMHg0NTANCglfX2RyaXZlcl9hdHRhY2gr MHhlMy8weGYwDQoJYnVzX2Zvcl9lYWNoX2RldisweDY2LzB4YTANCglkcml2ZXJfYXR0YWNoKzB4 MWUvMHgyMA0KCWJ1c19hZGRfZHJpdmVyKzB4MjAwLzB4MjcwDQoJZHJpdmVyX3JlZ2lzdGVyKzB4 NjAvMHhlMA0KCV9fcGNpX3JlZ2lzdGVyX2RyaXZlcisweDVkLzB4NjANCklORk86IEZyZWVkIGlu IGFjcGlfbnNfZ2V0X25vZGVfdW5sb2NrZWQrMHg5MC8weGE0IGFnZT0xIGNwdT0yIHBpZD04MTIN CglfX3NsYWJfZnJlZSsweDE3Ni8weDMxMA0KCWtmcmVlKzB4MjVlLzB4MmQwDQoJYWNwaV9uc19n ZXRfbm9kZV91bmxvY2tlZCsweDkwLzB4YTQNCglhY3BpX25zX2dldF9ub2RlKzB4M2QvMHg1Mg0K CWFjcGlfZ2V0X2hhbmRsZSsweDgyLzB4OTYNCglhY3BpX3BjaV9pcnFfZmluZF9wcnRfZW50cnkr MHgyNmUvMHgyYWUNCglhY3BpX3BjaV9pcnFfbG9va3VwKzB4MjgvMHgxMzUNCglhY3BpX3BjaV9p cnFfZW5hYmxlKzB4NjAvMHgxZjgNCglwY2liaW9zX2VuYWJsZV9kZXZpY2UrMHgyZC8weDMwDQoJ ZG9fcGNpX2VuYWJsZV9kZXZpY2UrMHg2NC8weGYwDQoJcGNpX2VuYWJsZV9kZXZpY2VfZmxhZ3Mr MHhjNS8weDExMA0KCXBjaV9lbmFibGVfZGV2aWNlX21lbSsweDEzLzB4MjANCglxbGEyeDAwX3By b2JlX29uZSsweDE0Yi8weDI1ZjAgW3FsYTJ4eHhdDQoJcGNpX2RldmljZV9wcm9iZSsweDhhLzB4 ZjANCglkcml2ZXJfcHJvYmVfZGV2aWNlKzB4MWY1LzB4NDUwDQoJX19kcml2ZXJfYXR0YWNoKzB4 ZTMvMHhmMA0KSU5GTzogU2xhYiAweGZmZmZlYTAwMDFiZmM2MDAgb2JqZWN0cz0yMyB1c2VkPTIy IGZwPTB4ZmZmZjg4MDA2ZmYxOGYyOCBmbGFncz0weDQwMDAwMDAwMDAwMDgxMDENCklORk86IE9i amVjdCAweGZmZmY4ODAwNmZmMThkYzggQG9mZnNldD0zNTI4IGZwPTB4ZmZmZjg4MDA2ZmYxOGYy OA0KDQpSZWR6b25lIGZmZmY4ODAwNmZmMThkYzA6IGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjICAg ICAgICAgICAgICAgICAgICAgICAgICAuLi4uLi4uLg0KT2JqZWN0IGZmZmY4ODAwNmZmMThkYzg6 IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4u Li4uLi4uLi4uDQpSZWR6b25lIGZmZmY4ODAwNmZmMThkZDg6IDBmIDAwIDAwIDAwIDAwIDAwIDAw IDAwICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4uLi4uLg0KUGFkZGluZyBmZmZmODgwMDZm ZjE4ZjE4OiA1YSA1YSA1YSA1YSA1YSA1YSA1YSA1YSAgICAgICAgICAgICAgICAgICAgICAgICAg WlpaWlpaWloNCkNQVTogMiBQSUQ6IDgxMiBDb21tOiBtb2Rwcm9iZSBUYWludGVkOiBHICAgIEIg ICAgICAgICAgIDQuMTAuMC1yYzUtZGJnKyAjOQ0KSGFyZHdhcmUgbmFtZTogQm9jaHMgQm9jaHMs IEJJT1MgQm9jaHMgMDEvMDEvMjAxMQ0KQ2FsbCBUcmFjZToNCiBkdW1wX3N0YWNrKzB4ODUvMHhj Mg0KIHByaW50X3RyYWlsZXIrMHgxNjIvMHgyNjANCiBjaGVja19ieXRlc19hbmRfcmVwb3J0KzB4 YzUvMHgxMTANCiBjaGVja19vYmplY3QrMHgxZGEvMHgyYTANCiBmcmVlX2RlYnVnX3Byb2Nlc3Np bmcrMHgxNjEvMHgzZDANCiA/IF9fcGNpX2VuYWJsZV9tc2l4KzB4NDFjLzB4NGMwDQogX19zbGFi X2ZyZWUrMHgxNzYvMHgzMTANCiA/IF9fcGNpX2VuYWJsZV9tc2l4KzB4NDFjLzB4NGMwDQogPyBj YWxsX3JjdSsweDE3LzB4MjANCiA/IHB1dF9vYmplY3QrMHgyZC8weDUwDQogPyBfX2RlbGV0ZV9v YmplY3QrMHgzZC8weDcwDQogPyBfX3BjaV9lbmFibGVfbXNpeCsweDQxYy8weDRjMA0KIGtmcmVl KzB4MjVlLzB4MmQwDQogX19wY2lfZW5hYmxlX21zaXgrMHg0MWMvMHg0YzANCiBwY2lfYWxsb2Nf aXJxX3ZlY3RvcnNfYWZmaW5pdHkrMHhiNy8weDE0MA0KIHFsYTJ4MDBfcmVxdWVzdF9pcnFzKzB4 YTYvMHg2ZDAgW3FsYTJ4eHhdDQogcWxhMngwMF9wcm9iZV9vbmUrMHhjMmUvMHgyNWYwIFtxbGEy eHh4XQ0KID8gX19wbV9ydW50aW1lX3Jlc3VtZSsweDQwLzB4ODANCiA/IHRyYWNlX2hhcmRpcnFz X29uKzB4ZC8weDEwDQogPyBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHg0YS8weDgwDQog cGNpX2RldmljZV9wcm9iZSsweDhhLzB4ZjANCiBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4MWY1LzB4 NDUwDQogX19kcml2ZXJfYXR0YWNoKzB4ZTMvMHhmMA0KID8gZHJpdmVyX3Byb2JlX2RldmljZSsw eDQ1MC8weDQ1MA0KIGJ1c19mb3JfZWFjaF9kZXYrMHg2Ni8weGEwDQogZHJpdmVyX2F0dGFjaCsw eDFlLzB4MjANCiBidXNfYWRkX2RyaXZlcisweDIwMC8weDI3MA0KID8gMHhmZmZmZmZmZmEwNGVi MDAwDQogZHJpdmVyX3JlZ2lzdGVyKzB4NjAvMHhlMA0KID8gMHhmZmZmZmZmZmEwNGViMDAwDQog X19wY2lfcmVnaXN0ZXJfZHJpdmVyKzB4NWQvMHg2MA0KIHFsYTJ4MDBfbW9kdWxlX2luaXQrMHgx YzkvMHgyMTcgW3FsYTJ4eHhdDQogZG9fb25lX2luaXRjYWxsKzB4NDQvMHgxODANCiA/IHJjdV9y ZWFkX2xvY2tfc2NoZWRfaGVsZCsweDcyLzB4ODANCiA/IGttZW1fY2FjaGVfYWxsb2NfdHJhY2Ur MHgyNWIvMHgyYzANCiA/IGRvX2luaXRfbW9kdWxlKzB4MjcvMHgxZjkNCiBkb19pbml0X21vZHVs ZSsweDVmLzB4MWY5DQogbG9hZF9tb2R1bGUrMHgyNTgyLzB4MmEwMA0KID8gX19zeW1ib2xfcHV0 KzB4NzAvMHg3MA0KID8ga2VybmVsX3JlYWRfZmlsZSsweDEwYS8weDFhMA0KID8ga2VybmVsX3Jl YWRfZmlsZV9mcm9tX2ZkKzB4NDkvMHg4MA0KIFNZU0NfZmluaXRfbW9kdWxlKzB4YmMvMHhmMA0K IFN5U19maW5pdF9tb2R1bGUrMHhlLzB4MTANCiBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4 MjMvMHhjNg0KUklQOiAwMDMzOjB4N2YwNTcxMTM4OGU5DQpSU1A6IDAwMmI6MDAwMDdmZmY1MWQ0 YTBmOCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMTM5DQpSQVg6IGZm ZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAzIFJDWDogMDAwMDdmMDU3MTEzODhl OQ0KUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDU1YzE3YWI0ZjcyMCBSREk6IDAwMDAw MDAwMDAwMDAwMDQNClJCUDogMDAwMDdmZmY1MWQ0OTEwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAg UjA5OiAwMDAwMDAwMDAwMDAwMDE5DQpSMTA6IDAwMDAwMDAwMDAwMDAwMDQgUjExOiAwMDAwMDAw MDAwMDAwMjQ2IFIxMjogMDAwMDU1YzE3YWI0ZjU3MA0KUjEzOiAwMDAwN2ZmZjUxZDQ5MGUwIFIx NDogMDAwMDAwMDAwMDAwMDAwNSBSMTU6IDAwMDAwMDAwMDAwNDAwMDANCkZJWCBrbWFsbG9jLTE2 OiBSZXN0b3JpbmcgMHhmZmZmODgwMDZmZjE4ZGQ4LTB4ZmZmZjg4MDA2ZmYxOGRkZj0weGNjDQoN CkZJWCBrbWFsbG9jLTE2OiBPYmplY3QgYXQgMHhmZmZmODgwMDZmZjE4ZGM4IG5vdCBmcmVlZA0K c2NzaSBob3N0MzogcWxhMnh4eA0KcWxhMnh4eCBbMDAwMDowMDowOS4wXS01MDBhOjI6IExPT1Ag VVAgZGV0ZWN0ZWQgKDQgR2JwcykuDQpxbGEyeHh4IFswMDAwOjAwOjBhLjBdLTUwMGE6MzogTE9P UCBVUCBkZXRlY3RlZCAoNCBHYnBzKS4NCg0KDQooZ2RiKSBsaXN0ICooX19wY2lfZW5hYmxlX21z aXgrMHgzMTQpDQoweGZmZmZmZmZmODEzMWFhNzQgaXMgaW4gX19wY2lfZW5hYmxlX21zaXggKGRy aXZlcnMvcGNpL21zaS5jOjcwMikuDQo2OTcgICAgICAgICAgICAgc3RydWN0IG1zaV9kZXNjICpl bnRyeTsNCjY5OCAgICAgICAgICAgICBpbnQgcmV0LCBpOw0KNjk5DQo3MDAgICAgICAgICAgICAg aWYgKGFmZmQpIHsNCjcwMSAgICAgICAgICAgICAgICAgICAgIG1hc2tzID0gaXJxX2NyZWF0ZV9h ZmZpbml0eV9tYXNrcyhudmVjLCBhZmZkKTsNCjcwMiAgICAgICAgICAgICAgICAgICAgIGlmICgh bWFza3MpDQo3MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByX2VycigiVW5hYmxlIHRv IGFsbG9jYXRlIGFmZmluaXR5IG1hc2tzLCBpZ25vcmluZ1xuIik7DQo3MDQgICAgICAgICAgICAg fQ0KNzA1DQo3MDYgICAgICAgICAgICAgZm9yIChpID0gMCwgY3VybXNrID0gbWFza3M7IGkgPCBu dmVjOyBpKyspIHsNCihnZGIpIGxpc3QgKihfX3BjaV9lbmFibGVfbXNpeCsweDQxYykNCjB4ZmZm ZmZmZmY4MTMxYWI3YyBpcyBpbiBfX3BjaV9lbmFibGVfbXNpeCAoZHJpdmVycy9wY2kvbXNpLmM6 NzgzKS4NCjc3OA0KNzc5ICAgICAgICAgICAgIHJldCA9IG1zaXhfc2V0dXBfZW50cmllcyhkZXYs IGJhc2UsIGVudHJpZXMsIG52ZWMsIGFmZmQpOw0KNzgwICAgICAgICAgICAgIGlmIChyZXQpDQo3 ODEgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KNzgyDQo3ODMgICAgICAgICAgICAg cmV0ID0gcGNpX21zaV9zZXR1cF9tc2lfaXJxcyhkZXYsIG52ZWMsIFBDSV9DQVBfSURfTVNJWCk7 DQo3ODQgICAgICAgICAgICAgaWYgKHJldCkNCjc4NSAgICAgICAgICAgICAgICAgICAgIGdvdG8g b3V0X2F2YWlsOw0KNzg2DQo3ODcgICAgICAgICAgICAgLyogQ2hlY2sgaWYgYWxsIE1TSSBlbnRy aWVzIGhvbm9yIGRldmljZSByZXN0cmljdGlvbnMgKi8NCihnZGIpIHF1aXQ=