From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?utf-8?B?6ZmI5Y2O5omN?=" Subject: Re: [PATCH V7 1/2] dma-mapping: Rework dma_get_cache_alignment() Date: Tue, 26 Sep 2017 09:44:35 +0800 Message-ID: References: <1506332766-23966-1-git-send-email-chenhc@lemote.com> <82d60f2b-1c5a-9f64-7e94-0d84e7e2fc33@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtpproxy19.qq.com ([184.105.206.84]:35450 "EHLO smtpproxy19.qq.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934961AbdIZBok (ORCPT ); Mon, 25 Sep 2017 21:44:40 -0400 In-Reply-To: <82d60f2b-1c5a-9f64-7e94-0d84e7e2fc33@arm.com> Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: =?utf-8?B?Um9iaW4gTXVycGh5?= , =?utf-8?B?Q2hyaXN0b3BoIEhlbGx3aWc=?= Cc: =?utf-8?B?TWFyZWsgU3p5cHJvd3NraQ==?= , =?utf-8?B?QW5kcmV3IE1vcnRvbg==?= , =?utf-8?B?RnV4aW4gWmhhbmc=?= , =?utf-8?B?bGludXgta2VybmVs?= , =?utf-8?B?UmFsZiBCYWVjaGxl?= , =?utf-8?B?SmFtZXMgSG9nYW4=?= , =?utf-8?B?bGludXgtbWlwcw==?= , =?utf-8?B?SmFtZXMgRSAuIEogLiBCb3R0b21sZXk=?= , =?utf-8?B?TWFydGluIEsgLiBQZXRlcnNlbg==?= , =?utf-8?B?bGludXgtc2NzaQ==?= , =?utf-8?B?Um9sYW5kIERyZWllcg==?= , =?utf-8?B?UGF3ZWwgT3NjaWFr?= , =?utf-8?B?S3l1bmdtaW4gUGFyaw==?= SGksIFJvYmluLA0KDQpDYW4gQVJNL0FSTTY0IHVzZSB0aGUgc2FtZSBpbXBsZW1lbnRhdGlv biBhcyBNSVBTPyBPciBJIGp1c3QgZG8gTUlQUyB0aGluZ3MgaXMgT0s/DQogDQpIdWFjYWkN CiANCi0tLS0tLS0tLS0tLS0tLS0tLSBPcmlnaW5hbCAtLS0tLS0tLS0tLS0tLS0tLS0NCkZy b206ICAiUm9iaW4gTXVycGh5Ijxyb2Jpbi5tdXJwaHlAYXJtLmNvbT47DQpEYXRlOiAgTW9u LCBTZXAgMjUsIDIwMTcgMDg6NTcgUE0NClRvOiAgIkh1YWNhaSBDaGVuIjxjaGVuaGNAbGVt b3RlLmNvbT47ICJDaHJpc3RvcGggSGVsbHdpZyI8aGNoQGxzdC5kZT47IA0KQ2M6ICAiTWFy ZWsgU3p5cHJvd3NraSI8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPjsgIkFuZHJldyBNb3J0 b24iPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+OyAiRnV4aW4gWmhhbmciPHpoYW5nZnhA bGVtb3RlLmNvbT47ICJsaW51eC1rZXJuZWwiPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5v cmc+OyAiUmFsZiBCYWVjaGxlIjxyYWxmQGxpbnV4LW1pcHMub3JnPjsgIkphbWVzIEhvZ2Fu IjxqYW1lcy5ob2dhbkBpbWd0ZWMuY29tPjsgImxpbnV4LW1pcHMiPGxpbnV4LW1pcHNAbGlu dXgtbWlwcy5vcmc+OyAiSmFtZXMgRSAuIEogLiBCb3R0b21sZXkiPGplamJAbGludXgudm5l dC5pYm0uY29tPjsgIk1hcnRpbiBLIC4gUGV0ZXJzZW4iPG1hcnRpbi5wZXRlcnNlbkBvcmFj bGUuY29tPjsgImxpbnV4LXNjc2kiPGxpbnV4LXNjc2lAdmdlci5rZXJuZWwub3JnPjsgIlJv bGFuZCBEcmVpZXIiPHJvbGFuZGRAY2lzY28uY29tPjsgIlBhd2VsIE9zY2lhayI8cGF3ZWxA b3NjaWFrLmNvbT47ICJLeXVuZ21pbiBQYXJrIjxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29t PjsgIk1pY2hhZWwgQ2hhbiI8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT47ICJCZW5qYW1p biBIZXJyZW5zY2htaWR0IjxiZW5oQGtlcm5lbC5jcmFzaGluZy5vcmc+OyAiSXZhbiBNaWto YXlsb3YiPGl2YW5AcnUuaWJtLmNvbT47ICJUYXJpcSBUb3VrYW4iPHRhcmlxdEBtZWxsYW5v eC5jb20+OyAiQW5keSBHcm9zcyI8YWdyb3NzQGNvZGVhdXJvcmEub3JnPjsgIk1hcmsgQSAu IEdyZWVyIjxtZ3JlZXJAbXZpc3RhLmNvbT47ICJSb2JlcnQgQmFsZHlnYSI8ci5iYWxkeWdh QHNhbXN1bmcuY29tPjsgInN0YWJsZSI8c3RhYmxlQHZnZXIua2VybmVsLm9yZz47IA0KU3Vi amVjdDogIFJlOiBbUEFUQ0ggVjcgMS8yXSBkbWEtbWFwcGluZzogUmV3b3JrIGRtYV9nZXRf Y2FjaGVfYWxpZ25tZW50KCkNCg0KIA0KT24gMjUvMDkvMTcgMTA6NDYsIEh1YWNhaSBDaGVu IHdyb3RlOg0KPiBNYWtlIGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KCkgdG8gYWNjZXB0IGEg J2RldicgYXJndW1lbnQuIEFzIGEgcmVzdWx0LA0KPiBpdCBjYW4gcmV0dXJuIGRpZmZlcmVu dCBhbGlnbm1lbnRzIGR1ZSB0byBkaWZmZXJlbnQgZGV2aWNlcycgSS9PIGNhY2hlDQo+IGNv aGVyZW5jeS4NCj4gDQo+IEN1cnJlbnRseSwgTUlQUyBpcyB0aGUgb25seSBhcmNoaXRlY3R1 cmUgd2hpY2ggc3VwcG9ydCBjb2hlcmVudCAmIG5vbi0NCj4gY29oZXJlbnQgZGV2aWNlcyBj by1leGlzdC4gVGhpcyBtYXkgYmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlLCBzbyBhZGQgYQ0K PiBuZXcgZ2V0X2NhY2hlX2FsaWdubWVudCgpIGZ1bmN0aW9uIHBvaW50ZXIgaW4gJ3N0cnVj dCBkbWFfbWFwX29wcycgYXMgYQ0KPiBnZW5lcmljIHNvbHV0aW9uLg0KDQpGV0lXLCBBUk0g YW5kIGFybTY0IGhhdmUgYWxzbyBzdXBwb3J0ZWQgcGVyLWRldmljZSBjb2hlcmVuY3kgZm9y IHF1aXRlDQpzb21lIHRpbWUuDQoNCj4gRm9yIGNvbXBhdGliaWxpdHkgKGFsd2F5cyByZXR1 cm4gQVJDSF9ETUFfTUlOQUxJR04pLCBtYWtlIGFsbCBleGlzdGluZw0KPiBjYWxsZXJzIHBh c3MgYSBOVUxMIGRldiBhcmd1bWVudCB0byBkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgpLg0K PiANCj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcNCj4gU2lnbmVkLW9mZi1ieTogSHVh Y2FpIENoZW4gPGNoZW5oY0BsZW1vdGUuY28+IC0tLQ0KPiAgYXJjaC9taXBzL2Nhdml1bS1v Y3Rlb24vZG1hLW9jdGVvbi5jICAgICAgICAgICB8ICAzICsrLQ0KPiAgYXJjaC9taXBzL2lu Y2x1ZGUvYXNtL2RtYS1tYXBwaW5nLmggICAgICAgICAgICB8ICAyICsrDQo+ICBhcmNoL21p cHMvbG9vbmdzb242NC9jb21tb24vZG1hLXN3aW90bGIuYyAgICAgIHwgIDEgKw0KPiAgYXJj aC9taXBzL21tL2RtYS1kZWZhdWx0LmMgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysr KysrKystDQo+ICBhcmNoL21pcHMvbmV0bG9naWMvY29tbW9uL25sbS1kbWEuYyAgICAgICAg ICAgIHwgIDMgKystDQo+ICBkcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWFp bi5jICAgICAgIHwgIDIgKy0NCj4gIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVm Mi1kbWEtY29udGlnLmMgfCAgMiArLQ0KPiAgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYjQ0LmMgICAgICAgICAgICB8ICAyICstDQo+ICBkcml2ZXJzL25ldC9ldGhlcm5ldC9p Ym0vZW1hYy9jb3JlLmggICAgICAgICAgIHwgIDIgKy0NCj4gIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDQvbWFpbi5jICAgICAgfCAgMiArLQ0KPiAgZHJpdmVycy9zcGkv c3BpLXF1cC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0NCj4gIGRyaXZl cnMvdHR5L3NlcmlhbC9tcHNjLmMgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKysr Ky0tLS0tLS0tDQo+ICBkcml2ZXJzL3R0eS9zZXJpYWwvc2Ftc3VuZy5jICAgICAgICAgICAg ICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0NCj4gIGluY2x1ZGUvbGludXgvZG1hLW1hcHBp bmcuaCAgICAgICAgICAgICAgICAgICAgfCAxNyArKysrKysrKysrKystLS0tLQ0KPiAgMTQg ZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pDQoNCkkg dGhpbmsgaXQgbWlnaHQgYmUgbmVhdGVyIHRvIHNwbGl0IHRoaXMgaW50byB0d28gcGF0Y2hl cyAtIG9uZSBtYWtpbmcNCnRoZSB0cmVld2lkZSBwcm90b3R5cGUgY2hhbmdlLCB0aGVuIGlu dHJvZHVjaW5nIHRoZSAuZ2V0X2NhY2hlX2FsaWduZW1udA0KY2FsbGJhY2sgc2VwYXJhdGVs eSAtIGJ1dCB0aGF0J3Mgb25seSBteSBwZXJzb25hbCBwcmVmZXJlbmNlLg0KDQpPdGhlcndp c2UgKGFuZCBtb2R1bG8gQ2hyaXN0b3BoJ3MgY29tbWVudHMpLCBJJ2Qgc2F5IHdlJ3JlIG5l YXJseSB0aGVyZS4NCg0KVGhhbmtzLA0KUm9iaW4uDQoNCj4gZGlmZiAtLWdpdCBhL2FyY2gv bWlwcy9jYXZpdW0tb2N0ZW9uL2RtYS1vY3Rlb24uYyBiL2FyY2gvbWlwcy9jYXZpdW0tb2N0 ZW9uL2RtYS1vY3Rlb24uYw0KPiBpbmRleCBjNjRiZDg3Li43OTc4MjM3IDEwMDY0NA0KPiAt LS0gYS9hcmNoL21pcHMvY2F2aXVtLW9jdGVvbi9kbWEtb2N0ZW9uLmMNCj4gKysrIGIvYXJj aC9taXBzL2Nhdml1bS1vY3Rlb24vZG1hLW9jdGVvbi5jDQo+IEBAIC0zMjQsNyArMzI0LDgg QEAgc3RhdGljIHN0cnVjdCBvY3Rlb25fZG1hX21hcF9vcHMgX29jdGVvbl9wY2lfZG1hX21h cF9vcHMgPSB7DQo+ICAJCS5zeW5jX3NnX2Zvcl9jcHUgPSBzd2lvdGxiX3N5bmNfc2dfZm9y X2NwdSwNCj4gIAkJLnN5bmNfc2dfZm9yX2RldmljZSA9IG9jdGVvbl9kbWFfc3luY19zZ19m b3JfZGV2aWNlLA0KPiAgCQkubWFwcGluZ19lcnJvciA9IHN3aW90bGJfZG1hX21hcHBpbmdf ZXJyb3IsDQo+IC0JCS5kbWFfc3VwcG9ydGVkID0gc3dpb3RsYl9kbWFfc3VwcG9ydGVkDQo+ ICsJCS5kbWFfc3VwcG9ydGVkID0gc3dpb3RsYl9kbWFfc3VwcG9ydGVkLA0KPiArCQkuZ2V0 X2NhY2hlX2FsaWdubWVudCA9IG1pcHNfZ2V0X2NhY2hlX2FsaWdubWVudA0KPiAgCX0sDQo+ ICB9Ow0KPiAgDQo+IGRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vZG1hLW1h cHBpbmcuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9kbWEtbWFwcGluZy5oDQo+IGluZGV4 IGFiYTcxMzguLmUyYzVkOWUgMTAwNjQ0DQo+IC0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2Fz bS9kbWEtbWFwcGluZy5oDQo+ICsrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9kbWEtbWFw cGluZy5oDQo+IEBAIC0zOSw0ICszOSw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX3Nl dHVwX2RtYV9vcHMoc3RydWN0IGRldmljZSAqZGV2LCB1NjQgZG1hX2Jhc2UsDQo+ICAjZW5k aWYNCj4gIH0NCj4gIA0KPiAraW50IG1pcHNfZ2V0X2NhY2hlX2FsaWdubWVudChzdHJ1Y3Qg ZGV2aWNlICpkZXYpOw0KPiArDQo+ICAjZW5kaWYgLyogX0FTTV9ETUFfTUFQUElOR19IICov DQo+IGRpZmYgLS1naXQgYS9hcmNoL21pcHMvbG9vbmdzb242NC9jb21tb24vZG1hLXN3aW90 bGIuYyBiL2FyY2gvbWlwcy9sb29uZ3NvbjY0L2NvbW1vbi9kbWEtc3dpb3RsYi5jDQo+IGlu ZGV4IDM0NDg2YzEuLjA5Y2I4YTQgMTAwNjQ0DQo+IC0tLSBhL2FyY2gvbWlwcy9sb29uZ3Nv bjY0L2NvbW1vbi9kbWEtc3dpb3RsYi5jDQo+ICsrKyBiL2FyY2gvbWlwcy9sb29uZ3NvbjY0 L2NvbW1vbi9kbWEtc3dpb3RsYi5jDQo+IEBAIC0xMTksNiArMTE5LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBkbWFfbWFwX29wcyBsb29uZ3Nvbl9kbWFfbWFwX29wcyA9IHsNCj4gIAku c3luY19zZ19mb3JfZGV2aWNlID0gbG9vbmdzb25fZG1hX3N5bmNfc2dfZm9yX2RldmljZSwN Cj4gIAkubWFwcGluZ19lcnJvciA9IHN3aW90bGJfZG1hX21hcHBpbmdfZXJyb3IsDQo+ICAJ LmRtYV9zdXBwb3J0ZWQgPSBsb29uZ3Nvbl9kbWFfc3VwcG9ydGVkLA0KPiArCS5nZXRfY2Fj aGVfYWxpZ25tZW50ID0gbWlwc19nZXRfY2FjaGVfYWxpZ25tZW50DQo+ICB9Ow0KPiAgDQo+ ICB2b2lkIF9faW5pdCBwbGF0X3N3aW90bGJfc2V0dXAodm9pZCkNCj4gZGlmZiAtLWdpdCBh L2FyY2gvbWlwcy9tbS9kbWEtZGVmYXVsdC5jIGIvYXJjaC9taXBzL21tL2RtYS1kZWZhdWx0 LmMNCj4gaW5kZXggYzAxYmQyMC4uYzQ5OTg3ZSAxMDA2NDQNCj4gLS0tIGEvYXJjaC9taXBz L21tL2RtYS1kZWZhdWx0LmMNCj4gKysrIGIvYXJjaC9taXBzL21tL2RtYS1kZWZhdWx0LmMN Cj4gQEAgLTM5NCw2ICszOTQsMTQgQEAgdm9pZCBkbWFfY2FjaGVfc3luYyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHZvaWQgKnZhZGRyLCBzaXplX3Qgc2l6ZSwNCj4gIA0KPiAgRVhQT1JUX1NZ TUJPTChkbWFfY2FjaGVfc3luYyk7DQo+ICANCj4gK2ludCBtaXBzX2dldF9jYWNoZV9hbGln bm1lbnQoc3RydWN0IGRldmljZSAqZGV2KQ0KPiArew0KPiArCWlmIChwbGF0X2RldmljZV9p c19jb2hlcmVudChkZXYpKQ0KPiArCQlyZXR1cm4gMTsNCj4gKwllbHNlDQo+ICsJCXJldHVy biBBUkNIX0RNQV9NSU5BTElHTjsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGNvbnN0IHN0cnVj dCBkbWFfbWFwX29wcyBtaXBzX2RlZmF1bHRfZG1hX21hcF9vcHMgPSB7DQo+ICAJLmFsbG9j ID0gbWlwc19kbWFfYWxsb2NfY29oZXJlbnQsDQo+ICAJLmZyZWUgPSBtaXBzX2RtYV9mcmVl X2NvaGVyZW50LA0KPiBAQCAtNDA3LDcgKzQxNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZG1hX21hcF9vcHMgbWlwc19kZWZhdWx0X2RtYV9tYXBfb3BzID0gew0KPiAgCS5zeW5jX3Nn X2Zvcl9jcHUgPSBtaXBzX2RtYV9zeW5jX3NnX2Zvcl9jcHUsDQo+ICAJLnN5bmNfc2dfZm9y X2RldmljZSA9IG1pcHNfZG1hX3N5bmNfc2dfZm9yX2RldmljZSwNCj4gIAkubWFwcGluZ19l cnJvciA9IG1pcHNfZG1hX21hcHBpbmdfZXJyb3IsDQo+IC0JLmRtYV9zdXBwb3J0ZWQgPSBt aXBzX2RtYV9zdXBwb3J0ZWQNCj4gKwkuZG1hX3N1cHBvcnRlZCA9IG1pcHNfZG1hX3N1cHBv cnRlZCwNCj4gKwkuZ2V0X2NhY2hlX2FsaWdubWVudCA9IG1pcHNfZ2V0X2NhY2hlX2FsaWdu bWVudA0KPiAgfTsNCj4gIA0KPiAgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICptaXBzX2Rt YV9tYXBfb3BzID0gJm1pcHNfZGVmYXVsdF9kbWFfbWFwX29wczsNCj4gZGlmZiAtLWdpdCBh L2FyY2gvbWlwcy9uZXRsb2dpYy9jb21tb24vbmxtLWRtYS5jIGIvYXJjaC9taXBzL25ldGxv Z2ljL2NvbW1vbi9ubG0tZG1hLmMNCj4gaW5kZXggMGVjOWQ5ZC4uMWUxMDdhYyAxMDA2NDQN Cj4gLS0tIGEvYXJjaC9taXBzL25ldGxvZ2ljL2NvbW1vbi9ubG0tZG1hLmMNCj4gKysrIGIv YXJjaC9taXBzL25ldGxvZ2ljL2NvbW1vbi9ubG0tZG1hLmMNCj4gQEAgLTc5LDcgKzc5LDgg QEAgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIG5sbV9zd2lvdGxiX2RtYV9vcHMgPSB7DQo+ ICAJLnN5bmNfc2dfZm9yX2NwdSA9IHN3aW90bGJfc3luY19zZ19mb3JfY3B1LA0KPiAgCS5z eW5jX3NnX2Zvcl9kZXZpY2UgPSBzd2lvdGxiX3N5bmNfc2dfZm9yX2RldmljZSwNCj4gIAku bWFwcGluZ19lcnJvciA9IHN3aW90bGJfZG1hX21hcHBpbmdfZXJyb3IsDQo+IC0JLmRtYV9z dXBwb3J0ZWQgPSBzd2lvdGxiX2RtYV9zdXBwb3J0ZWQNCj4gKwkuZG1hX3N1cHBvcnRlZCA9 IHN3aW90bGJfZG1hX3N1cHBvcnRlZCwNCj4gKwkuZ2V0X2NhY2hlX2FsaWdubWVudCA9IG1p cHNfZ2V0X2NhY2hlX2FsaWdubWVudA0KPiAgfTsNCj4gIA0KPiAgdm9pZCBfX2luaXQgcGxh dF9zd2lvdGxiX3NldHVwKHZvaWQpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJh bmQvaHcvbXRoY2EvbXRoY2FfbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNh L210aGNhX21haW4uYw0KPiBpbmRleCBlMzZhOWJjLi5jYWM1ZmFjIDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWFpbi5jDQo+ICsrKyBiL2Ry aXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWluLmMNCj4gQEAgLTQxNiw3ICs0 MTYsNyBAQCBzdGF0aWMgaW50IG10aGNhX2luaXRfaWNtKHN0cnVjdCBtdGhjYV9kZXYgKm1k ZXYsDQo+ICANCj4gIAkvKiBDUFUgd3JpdGVzIHRvIG5vbi1yZXNlcnZlZCBNVFRzLCB3aGls ZSBIQ0EgbWlnaHQgRE1BIHRvIHJlc2VydmVkIG10dHMgKi8NCj4gIAltZGV2LT5saW1pdHMu cmVzZXJ2ZWRfbXR0cyA9IEFMSUdOKG1kZXYtPmxpbWl0cy5yZXNlcnZlZF9tdHRzICogbWRl di0+bGltaXRzLm10dF9zZWdfc2l6ZSwNCj4gLQkJCQkJICAgZG1hX2dldF9jYWNoZV9hbGln bm1lbnQoKSkgLyBtZGV2LT5saW1pdHMubXR0X3NlZ19zaXplOw0KPiArCQkJCQkgICBkbWFf Z2V0X2NhY2hlX2FsaWdubWVudChOVUxMKSkgLyBtZGV2LT5saW1pdHMubXR0X3NlZ19zaXpl Ow0KPiAgDQo+ICAJbWRldi0+bXJfdGFibGUubXR0X3RhYmxlID0gbXRoY2FfYWxsb2NfaWNt X3RhYmxlKG1kZXYsIGluaXRfaGNhLT5tdHRfYmFzZSwNCj4gIAkJCQkJCQkgbWRldi0+bGlt aXRzLm10dF9zZWdfc2l6ZSwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1j b3JlL3ZpZGVvYnVmMi1kbWEtY29udGlnLmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92 aWRlb2J1ZjItZG1hLWNvbnRpZy5jDQo+IGluZGV4IDlmMzg5ZjMuLjdmNTQ3MzkgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1kbWEtY29udGln LmMNCj4gKysrIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1jb250 aWcuYw0KPiBAQCAtNDg0LDcgKzQ4NCw3IEBAIHN0YXRpYyB2b2lkICp2YjJfZGNfZ2V0X3Vz ZXJwdHIoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIHZhZGRyLA0KPiAgCWlu dCByZXQgPSAwOw0KPiAgCXN0cnVjdCBzZ190YWJsZSAqc2d0Ow0KPiAgCXVuc2lnbmVkIGxv bmcgY29udGlnX3NpemU7DQo+IC0JdW5zaWduZWQgbG9uZyBkbWFfYWxpZ24gPSBkbWFfZ2V0 X2NhY2hlX2FsaWdubWVudCgpOw0KPiArCXVuc2lnbmVkIGxvbmcgZG1hX2FsaWduID0gZG1h X2dldF9jYWNoZV9hbGlnbm1lbnQoTlVMTCk7DQo+ICANCj4gIAkvKiBPbmx5IGNhY2hlIGFs aWduZWQgRE1BIHRyYW5zZmVycyBhcmUgcmVsaWFibGUgKi8NCj4gIAlpZiAoIUlTX0FMSUdO RUQodmFkZHIgfCBzaXplLCBkbWFfYWxpZ24pKSB7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9iNDQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2I0NC5jDQo+IGluZGV4IGExMTI1ZDEuLjI5MWQ2YWYgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jDQo+ICsrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jDQo+IEBAIC0yNTg3LDcgKzI1ODcsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgYjQ0X3BjaV9leGl0KHZvaWQpDQo+ICANCj4gIHN0YXRpYyBp bnQgX19pbml0IGI0NF9pbml0KHZvaWQpDQo+ICB7DQo+IC0JdW5zaWduZWQgaW50IGRtYV9k ZXNjX2FsaWduX3NpemUgPSBkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgpOw0KPiArCXVuc2ln bmVkIGludCBkbWFfZGVzY19hbGlnbl9zaXplID0gZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQo TlVMTCk7DQo+ICAJaW50IGVycjsNCj4gIA0KPiAgCS8qIFNldHVwIHBhcmFtYXRlcnMgZm9y IHN5bmNpbmcgUlgvVFggRE1BIGRlc2NyaXB0b3JzICovDQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9pYm0vZW1hYy9jb3JlLmgNCj4gaW5kZXggMzY5ZGUyYy4uMjM2YmYzNyAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaWJtL2VtYWMvY29yZS5oDQo+ICsrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2libS9lbWFjL2NvcmUuaA0KPiBAQCAtNjgsNyArNjgsNyBA QCBzdGF0aWMgaW5saW5lIGludCBlbWFjX3J4X3NpemUoaW50IG10dSkNCj4gIAkJcmV0dXJu IG1hbF9yeF9zaXplKEVUSF9EQVRBX0xFTiArIEVNQUNfTVRVX09WRVJIRUFEKTsNCj4gIH0N Cj4gIA0KPiAtI2RlZmluZSBFTUFDX0RNQV9BTElHTih4KQkJQUxJR04oKHgpLCBkbWFfZ2V0 X2NhY2hlX2FsaWdubWVudCgpKQ0KPiArI2RlZmluZSBFTUFDX0RNQV9BTElHTih4KQkJQUxJ R04oKHgpLCBkbWFfZ2V0X2NhY2hlX2FsaWdubWVudChOVUxMKSkNCj4gIA0KPiAgI2RlZmlu ZSBFTUFDX1JYX1NLQl9IRUFEUk9PTQkJXA0KPiAgCUVNQUNfRE1BX0FMSUdOKENPTkZJR19J Qk1fRU1BQ19SWF9TS0JfSEVBRFJPT00pDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDQvbWFpbi5jDQo+IGluZGV4IGU2MWM5OWUuLjU2YjE0NDkgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvbWFpbi5jDQo+ICsr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvbWFpbi5jDQo+IEBAIC0x NjYwLDcgKzE2NjAsNyBAQCBzdGF0aWMgaW50IG1seDRfaW5pdF9pY20oc3RydWN0IG1seDRf ZGV2ICpkZXYsIHN0cnVjdCBtbHg0X2Rldl9jYXAgKmRldl9jYXAsDQo+ICAJICovDQo+ICAJ ZGV2LT5jYXBzLnJlc2VydmVkX210dHMgPQ0KPiAgCQlBTElHTihkZXYtPmNhcHMucmVzZXJ2 ZWRfbXR0cyAqIGRldi0+Y2Fwcy5tdHRfZW50cnlfc3osDQo+IC0JCSAgICAgIGRtYV9nZXRf Y2FjaGVfYWxpZ25tZW50KCkpIC8gZGV2LT5jYXBzLm10dF9lbnRyeV9zejsNCj4gKwkJICAg ICAgZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoTlVMTCkpIC8gZGV2LT5jYXBzLm10dF9lbnRy eV9zejsNCj4gIA0KPiAgCWVyciA9IG1seDRfaW5pdF9pY21fdGFibGUoZGV2LCAmcHJpdi0+ bXJfdGFibGUubXR0X3RhYmxlLA0KPiAgCQkJCSAgaW5pdF9oY2EtPm10dF9iYXNlLA0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXF1cC5jIGIvZHJpdmVycy9zcGkvc3BpLXF1 cC5jDQo+IGluZGV4IDk3NGE4Y2UuLjBjNjk4YzMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv c3BpL3NwaS1xdXAuYw0KPiArKysgYi9kcml2ZXJzL3NwaS9zcGktcXVwLmMNCj4gQEAgLTg2 Miw3ICs4NjIsNyBAQCBzdGF0aWMgYm9vbCBzcGlfcXVwX2Nhbl9kbWEoc3RydWN0IHNwaV9t YXN0ZXIgKm1hc3Rlciwgc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwNCj4gIAkJCSAgICBzdHJ1 Y3Qgc3BpX3RyYW5zZmVyICp4ZmVyKQ0KPiAgew0KPiAgCXN0cnVjdCBzcGlfcXVwICpxdXAg PSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKG1hc3Rlcik7DQo+IC0Jc2l6ZV90IGRtYV9hbGln biA9IGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KCk7DQo+ICsJc2l6ZV90IGRtYV9hbGlnbiA9 IGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KE5VTEwpOw0KPiAgCWludCBuX3dvcmRzOw0KPiAg DQo+ICAJaWYgKHhmZXItPnJ4X2J1Zikgew0KPiBAQCAtMTAzOCw3ICsxMDM4LDcgQEAgc3Rh dGljIGludCBzcGlfcXVwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ ICAJbWFzdGVyLT50cmFuc2Zlcl9vbmUgPSBzcGlfcXVwX3RyYW5zZmVyX29uZTsNCj4gIAlt YXN0ZXItPmRldi5vZl9ub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7DQo+ICAJbWFzdGVyLT5h dXRvX3J1bnRpbWVfcG0gPSB0cnVlOw0KPiAtCW1hc3Rlci0+ZG1hX2FsaWdubWVudCA9IGRt YV9nZXRfY2FjaGVfYWxpZ25tZW50KCk7DQo+ICsJbWFzdGVyLT5kbWFfYWxpZ25tZW50ID0g ZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoTlVMTCk7DQo+ICAJbWFzdGVyLT5tYXhfZG1hX2xl biA9IFNQSV9NQVhfWEZFUjsNCj4gIA0KPiAgCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYs IG1hc3Rlcik7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvbXBzYy5jIGIv ZHJpdmVycy90dHkvc2VyaWFsL21wc2MuYw0KPiBpbmRleCA2N2ZmZWNjLi5lMmY3OTJhIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvbXBzYy5jDQo+ICsrKyBiL2RyaXZl cnMvdHR5L3NlcmlhbC9tcHNjLmMNCj4gQEAgLTgxLDE5ICs4MSwxOSBAQA0KPiAgICogTnVt YmVyIG9mIFR4ICYgUnggZGVzY3JpcHRvcnMgbXVzdCBiZSBwb3dlcnMgb2YgMi4NCj4gICAq Lw0KPiAgI2RlZmluZQlNUFNDX1JYUl9FTlRSSUVTCTMyDQo+IC0jZGVmaW5lCU1QU0NfUlhS RV9TSVpFCQlkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgpDQo+ICsjZGVmaW5lCU1QU0NfUlhS RV9TSVpFCQlkbWFfZ2V0X2NhY2hlX2FsaWdubWVudChOVUxMKQ0KPiAgI2RlZmluZQlNUFND X1JYUl9TSVpFCQkoTVBTQ19SWFJfRU5UUklFUyAqIE1QU0NfUlhSRV9TSVpFKQ0KPiAtI2Rl ZmluZQlNUFNDX1JYQkVfU0laRQkJZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoKQ0KPiArI2Rl ZmluZQlNUFNDX1JYQkVfU0laRQkJZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoTlVMTCkNCj4g ICNkZWZpbmUJTVBTQ19SWEJfU0laRQkJKE1QU0NfUlhSX0VOVFJJRVMgKiBNUFNDX1JYQkVf U0laRSkNCj4gIA0KPiAgI2RlZmluZQlNUFNDX1RYUl9FTlRSSUVTCTMyDQo+IC0jZGVmaW5l CU1QU0NfVFhSRV9TSVpFCQlkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgpDQo+ICsjZGVmaW5l CU1QU0NfVFhSRV9TSVpFCQlkbWFfZ2V0X2NhY2hlX2FsaWdubWVudChOVUxMKQ0KPiAgI2Rl ZmluZQlNUFNDX1RYUl9TSVpFCQkoTVBTQ19UWFJfRU5UUklFUyAqIE1QU0NfVFhSRV9TSVpF KQ0KPiAtI2RlZmluZQlNUFNDX1RYQkVfU0laRQkJZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQo KQ0KPiArI2RlZmluZQlNUFNDX1RYQkVfU0laRQkJZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQo TlVMTCkNCj4gICNkZWZpbmUJTVBTQ19UWEJfU0laRQkJKE1QU0NfVFhSX0VOVFJJRVMgKiBN UFNDX1RYQkVfU0laRSkNCj4gIA0KPiAgI2RlZmluZQlNUFNDX0RNQV9BTExPQ19TSVpFCShN UFNDX1JYUl9TSVpFICsgTVBTQ19SWEJfU0laRSArIE1QU0NfVFhSX1NJWkUgXA0KPiAtCQkr IE1QU0NfVFhCX1NJWkUgKyBkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgpIC8qIGZvciBhbGln bm1lbnQgKi8pDQo+ICsJCSsgTVBTQ19UWEJfU0laRSArIGRtYV9nZXRfY2FjaGVfYWxpZ25t ZW50KE5VTEwpIC8qIGZvciBhbGlnbm1lbnQgKi8pDQo+ICANCj4gIC8qIFJ4IGFuZCBUeCBS aW5nIGVudHJ5IGRlc2NyaXB0b3JzIC0tIGFzc3VtZSBlbnRyeSBzaXplIGlzIDw9IGNhY2hl bGluZSBzaXplICovDQo+ICBzdHJ1Y3QgbXBzY19yeF9kZXNjIHsNCj4gQEAgLTczOCw3ICs3 MzgsNyBAQCBzdGF0aWMgdm9pZCBtcHNjX2luaXRfaHcoc3RydWN0IG1wc2NfcG9ydF9pbmZv ICpwaSkNCj4gIA0KPiAgCW1wc2NfYnJnX2luaXQocGksIHBpLT5icmdfY2xrX3NyYyk7DQo+ ICAJbXBzY19icmdfZW5hYmxlKHBpKTsNCj4gLQltcHNjX3NkbWFfaW5pdChwaSwgZG1hX2dl dF9jYWNoZV9hbGlnbm1lbnQoKSk7CS8qIGJ1cnN0IGEgY2FjaGVsaW5lICovDQo+ICsJbXBz Y19zZG1hX2luaXQocGksIGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KE5VTEwpKTsJLyogYnVy c3QgYSBjYWNoZWxpbmUgKi8NCj4gIAltcHNjX3NkbWFfc3RvcChwaSk7DQo+ICAJbXBzY19o d19pbml0KHBpKTsNCj4gIH0NCj4gQEAgLTc5OCw4ICs3OTgsOCBAQCBzdGF0aWMgdm9pZCBt cHNjX2luaXRfcmluZ3Moc3RydWN0IG1wc2NfcG9ydF9pbmZvICpwaSkNCj4gIAkgKiBEZXNj cmlwdG9ycyAmIGJ1ZmZlcnMgYXJlIG11bHRpcGxlcyBvZiBjYWNoZWxpbmUgc2l6ZSBhbmQg bXVzdCBiZQ0KPiAgCSAqIGNhY2hlbGluZSBhbGlnbmVkLg0KPiAgCSAqLw0KPiAtCWRwID0g QUxJR04oKHUzMilwaS0+ZG1hX3JlZ2lvbiwgZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoKSk7 DQo+IC0JZHBfcCA9IEFMSUdOKCh1MzIpcGktPmRtYV9yZWdpb25fcCwgZG1hX2dldF9jYWNo ZV9hbGlnbm1lbnQoKSk7DQo+ICsJZHAgPSBBTElHTigodTMyKXBpLT5kbWFfcmVnaW9uLCBk bWFfZ2V0X2NhY2hlX2FsaWdubWVudChOVUxMKSk7DQo+ICsJZHBfcCA9IEFMSUdOKCh1MzIp cGktPmRtYV9yZWdpb25fcCwgZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoTlVMTCkpOw0KPiAg DQo+ICAJLyoNCj4gIAkgKiBQYXJ0aXRpb24gZG1hIHJlZ2lvbiBpbnRvIHJ4IHJpbmcgZGVz Y3JpcHRvciwgcnggYnVmZmVycywNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3Nlcmlh bC9zYW1zdW5nLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvc2Ftc3VuZy5jDQo+IGluZGV4IDhh Y2ExOGMuLmI0MGE2ODEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC9zYW1z dW5nLmMNCj4gKysrIGIvZHJpdmVycy90dHkvc2VyaWFsL3NhbXN1bmcuYw0KPiBAQCAtMjQx LDcgKzI0MSw3IEBAIHN0YXRpYyB2b2lkIGVuYWJsZV90eF9kbWEoc3RydWN0IHMzYzI0eHhf dWFydF9wb3J0ICpvdXJwb3J0KQ0KPiAgCS8qIEVuYWJsZSB0eCBkbWEgbW9kZSAqLw0KPiAg CXVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7DQo+ICAJdWNvbiAmPSB+KFMz QzY0WFhfVUNPTl9UWEJVUlNUX01BU0sgfCBTM0M2NFhYX1VDT05fVFhNT0RFX01BU0spOw0K PiAtCXVjb24gfD0gKGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KCkgPj0gMTYpID8NCj4gKwl1 Y29uIHw9IChkbWFfZ2V0X2NhY2hlX2FsaWdubWVudChOVUxMKSA+PSAxNikgPw0KPiAgCQlT M0M2NFhYX1VDT05fVFhCVVJTVF8xNiA6IFMzQzY0WFhfVUNPTl9UWEJVUlNUXzE7DQo+ICAJ dWNvbiB8PSBTM0M2NFhYX1VDT05fVFhNT0RFX0RNQTsNCj4gIAl3cl9yZWdsKHBvcnQsICBT M0MyNDEwX1VDT04sIHVjb24pOw0KPiBAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRpYyBpbnQg czNjMjR4eF9zZXJpYWxfc3RhcnRfdHhfZG1hKHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAq b3VycG9ydCwNCj4gIAlpZiAob3VycG9ydC0+dHhfbW9kZSAhPSBTM0MyNFhYX1RYX0RNQSkN Cj4gIAkJZW5hYmxlX3R4X2RtYShvdXJwb3J0KTsNCj4gIA0KPiAtCWRtYS0+dHhfc2l6ZSA9 IGNvdW50ICYgfihkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgpIC0gMSk7DQo+ICsJZG1hLT50 eF9zaXplID0gY291bnQgJiB+KGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KE5VTEwpIC0gMSk7 DQo+ICAJZG1hLT50eF90cmFuc2Zlcl9hZGRyID0gZG1hLT50eF9hZGRyICsgeG1pdC0+dGFp bDsNCj4gIA0KPiAgCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKG91cnBvcnQtPnBvcnQu ZGV2LCBkbWEtPnR4X3RyYW5zZmVyX2FkZHIsDQo+IEBAIC0zMzIsNyArMzMyLDcgQEAgc3Rh dGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RhcnRfbmV4dF90eChzdHJ1Y3QgczNjMjR4eF91 YXJ0X3BvcnQgKm91cnBvcnQpDQo+ICANCj4gIAlpZiAoIW91cnBvcnQtPmRtYSB8fCAhb3Vy cG9ydC0+ZG1hLT50eF9jaGFuIHx8DQo+ICAJICAgIGNvdW50IDwgb3VycG9ydC0+bWluX2Rt YV9zaXplIHx8DQo+IC0JICAgIHhtaXQtPnRhaWwgJiAoZG1hX2dldF9jYWNoZV9hbGlnbm1l bnQoKSAtIDEpKQ0KPiArCSAgICB4bWl0LT50YWlsICYgKGRtYV9nZXRfY2FjaGVfYWxpZ25t ZW50KE5VTEwpIC0gMSkpDQo+ICAJCXMzYzI0eHhfc2VyaWFsX3N0YXJ0X3R4X3BpbyhvdXJw b3J0KTsNCj4gIAllbHNlDQo+ICAJCXMzYzI0eHhfc2VyaWFsX3N0YXJ0X3R4X2RtYShvdXJw b3J0LCBjb3VudCk7DQo+IEBAIC03MTgsOCArNzE4LDggQEAgc3RhdGljIGlycXJldHVybl90 IHMzYzI0eHhfc2VyaWFsX3R4X2NoYXJzKGludCBpcnEsIHZvaWQgKmlkKQ0KPiAgDQo+ICAJ aWYgKG91cnBvcnQtPmRtYSAmJiBvdXJwb3J0LT5kbWEtPnR4X2NoYW4gJiYNCj4gIAkgICAg Y291bnQgPj0gb3VycG9ydC0+bWluX2RtYV9zaXplKSB7DQo+IC0JCWludCBhbGlnbiA9IGRt YV9nZXRfY2FjaGVfYWxpZ25tZW50KCkgLQ0KPiAtCQkJKHhtaXQtPnRhaWwgJiAoZG1hX2dl dF9jYWNoZV9hbGlnbm1lbnQoKSAtIDEpKTsNCj4gKwkJaW50IGFsaWduID0gZG1hX2dldF9j YWNoZV9hbGlnbm1lbnQoTlVMTCkgLQ0KPiArCQkJKHhtaXQtPnRhaWwgJiAoZG1hX2dldF9j YWNoZV9hbGlnbm1lbnQoTlVMTCkgLSAxKSk7DQo+ICAJCWlmIChjb3VudC1hbGlnbiA+PSBv dXJwb3J0LT5taW5fZG1hX3NpemUpIHsNCj4gIAkJCWRtYV9jb3VudCA9IGNvdW50LWFsaWdu Ow0KPiAgCQkJY291bnQgPSBhbGlnbjsNCj4gQEAgLTg3MCw3ICs4NzAsNyBAQCBzdGF0aWMg aW50IHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfZG1hKHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9y dCAqcCkNCj4gIAlkbWEtPnR4X2NvbmYuZGlyZWN0aW9uCQk9IERNQV9NRU1fVE9fREVWOw0K PiAgCWRtYS0+dHhfY29uZi5kc3RfYWRkcl93aWR0aAk9IERNQV9TTEFWRV9CVVNXSURUSF8x X0JZVEU7DQo+ICAJZG1hLT50eF9jb25mLmRzdF9hZGRyCQk9IHAtPnBvcnQubWFwYmFzZSAr IFMzQzI0MTBfVVRYSDsNCj4gLQlpZiAoZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoKSA+PSAx NikNCj4gKwlpZiAoZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoTlVMTCkgPj0gMTYpDQo+ICAJ CWRtYS0+dHhfY29uZi5kc3RfbWF4YnVyc3QgPSAxNjsNCj4gIAllbHNlDQo+ICAJCWRtYS0+ dHhfY29uZi5kc3RfbWF4YnVyc3QgPSAxOw0KPiBAQCAtMTg0OSw3ICsxODQ5LDcgQEAgc3Rh dGljIGludCBzM2MyNHh4X3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQ0KPiAgCSAqIHNvIGZpbmQgbWluaW1hbCB0cmFuc2ZlciBzaXplIHN1aXRhYmxlIGZv ciBETUEgbW9kZQ0KPiAgCSAqLw0KPiAgCW91cnBvcnQtPm1pbl9kbWFfc2l6ZSA9IG1heF90 KGludCwgb3VycG9ydC0+cG9ydC5maWZvc2l6ZSwNCj4gLQkJCQkgICAgZG1hX2dldF9jYWNo ZV9hbGlnbm1lbnQoKSk7DQo+ICsJCQkJICAgIGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KE5V TEwpKTsNCj4gIA0KPiAgCWRiZygiJXM6IGluaXRpYWxpc2luZyBwb3J0ICVwLi4uXG4iLCBf X2Z1bmNfXywgb3VycG9ydCk7DQo+ICANCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv ZG1hLW1hcHBpbmcuaCBiL2luY2x1ZGUvbGludXgvZG1hLW1hcHBpbmcuaA0KPiBpbmRleCAy OWNlOTgxLi4xMzI2MDIzIDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1tYXBw aW5nLmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oDQo+IEBAIC0xMzEs NiArMTMxLDcgQEAgc3RydWN0IGRtYV9tYXBfb3BzIHsNCj4gICNpZmRlZiBBUkNIX0hBU19E TUFfR0VUX1JFUVVJUkVEX01BU0sNCj4gIAl1NjQgKCpnZXRfcmVxdWlyZWRfbWFzaykoc3Ry dWN0IGRldmljZSAqZGV2KTsNCj4gICNlbmRpZg0KPiArCWludCAoKmdldF9jYWNoZV9hbGln bm1lbnQpKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICAJaW50IGlzX3BoeXM7DQo+ICB9Ow0K PiAgDQo+IEBAIC02OTcsMTIgKzY5OCwxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKmRtYV96 YWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwNCj4gIH0N Cj4gIA0KPiAgI2lmZGVmIENPTkZJR19IQVNfRE1BDQo+IC1zdGF0aWMgaW5saW5lIGludCBk bWFfZ2V0X2NhY2hlX2FsaWdubWVudCh2b2lkKQ0KPiAtew0KPiAtI2lmZGVmIEFSQ0hfRE1B X01JTkFMSUdODQo+IC0JcmV0dXJuIEFSQ0hfRE1BX01JTkFMSUdOOw0KPiArDQo+ICsjaWZu ZGVmIEFSQ0hfRE1BX01JTkFMSUdODQo+ICsjZGVmaW5lIEFSQ0hfRE1BX01JTkFMSUdOIDEN Cj4gICNlbmRpZg0KPiAtCXJldHVybiAxOw0KPiArDQo+ICtzdGF0aWMgaW5saW5lIGludCBk bWFfZ2V0X2NhY2hlX2FsaWdubWVudChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJ Y29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICpvcHMgPSBnZXRfZG1hX29wcyhkZXYpOw0KPiAr CWlmIChkZXYgJiYgb3BzICYmIG9wcy0+Z2V0X2NhY2hlX2FsaWdubWVudCkNCj4gKwkJcmV0 dXJuIG9wcy0+Z2V0X2NhY2hlX2FsaWdubWVudChkZXYpOw0KPiArDQo+ICsJcmV0dXJuIEFS Q0hfRE1BX01JTkFMSUdOOyAvKiBjb21wYXRpYmxlIGJlaGF2aW9yICovDQo+ICB9DQo+ICAj ZW5kaWYNCj4gIA0KPg==