From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?utf-8?B?6ZmI5Y2O5omN?=" Subject: Re: [PATCH V8 4/5] libsas: Align SMP req/resp todma_get_cache_alignment() Date: Wed, 18 Oct 2017 09:12:51 +0800 Message-ID: References: <1508227542-13165-1-git-send-email-chenhc@lemote.com> <1508227542-13165-4-git-send-email-chenhc@lemote.com> <286bf838-4d2f-a25f-baf9-ef3ac9b37d93@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <286bf838-4d2f-a25f-baf9-ef3ac9b37d93@samsung.com> Sender: stable-owner@vger.kernel.org To: =?utf-8?B?TWFyZWsgU3p5cHJvd3NraQ==?= , =?utf-8?B?Q2hyaXN0b3BoIEhlbGx3aWc=?= Cc: =?utf-8?B?Um9iaW4gTXVycGh5?= , =?utf-8?B?QW5kcmV3IE1vcnRvbg==?= , =?utf-8?B?RnV4aW4gWmhhbmc=?= , =?utf-8?B?bGludXgta2VybmVs?= , =?utf-8?B?UmFsZiBCYWVjaGxl?= , =?utf-8?B?SmFtZXNIb2dhbg==?= , =?utf-8?B?bGludXgtbWlwcw==?= , =?utf-8?B?SmFtZXMgRSAuIEogLkJvdHRvbWxleQ==?= , =?utf-8?B?TWFydGluIEsgLiBQZXRlcnNlbg==?= , =?utf-8?B?bGludXgtc2NzaQ==?= , =?utf-8?B?VGVqdW4gSGVv?= , =?utf-8?B?bGludXgtaWRl?= , =?utf-8?B?c3RhYmxl?= List-Id: linux-ide@vger.kernel.org SGksIE1hcmVrLA0KDQpZZXMsIEkga25vdyBpbiBpbmNsdWRlL2xpbnV4L3NsYWIuaCwgdGhl cmUgaXMNCiNkZWZpbmUgS01BTExPQ19NSU5fU0laRSBBUkNIX0RNQV9NSU5BTElHTg0KDQpC dXQgSSBvYnNlcnZlZCB0aGF0IHRoZSByZXEvcmVzcCBpc24ndCBhbGlnbmVkIHRvIEFSQ0hf RE1BX01JTkFMSUdOIGFuZCBJIGRvbid0IGtub3cgd2h5Lg0KDQpQcm9ibGVtcyBJIGV4cGVy aWVuY2VkIGlzOiBJbiBub24tY29oZXJlbnQgbW9kZSwgbXZzYXMgd2l0aCBhbiBleHBhbmRl ciBjYW5ub3QgZGV0ZWN0IGFueSBkaXNrcy4NCg0KSHVhY2FpDQogDQogDQotLS0tLS0tLS0t LS0tLS0tLS0gT3JpZ2luYWwgLS0tLS0tLS0tLS0tLS0tLS0tDQpGcm9tOiAgIk1hcmVrIFN6 eXByb3dza2kiPG0uc3p5cHJvd3NraUBzYW1zdW5nLmNvbT47DQpEYXRlOiAgVHVlLCBPY3Qg MTcsIDIwMTcgMDc6NTUgUE0NClRvOiAgIkh1YWNhaSBDaGVuIjxjaGVuaGNAbGVtb3RlLmNv bT47ICJDaHJpc3RvcGggSGVsbHdpZyI8aGNoQGxzdC5kZT47IA0KQ2M6ICAiUm9iaW4gTXVy cGh5Ijxyb2Jpbi5tdXJwaHlAYXJtLmNvbT47ICJBbmRyZXcgTW9ydG9uIjxha3BtQGxpbnV4 LWZvdW5kYXRpb24ub3JnPjsgIkZ1eGluIFpoYW5nIjx6aGFuZ2Z4QGxlbW90ZS5jb20+OyAi bGludXgta2VybmVsIjxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgIlJhbGYgQmFl Y2hsZSI8cmFsZkBsaW51eC1taXBzLm9yZz47ICJKYW1lc0hvZ2FuIjxqYW1lcy5ob2dhbkBp bWd0ZWMuY29tPjsgImxpbnV4LW1pcHMiPGxpbnV4LW1pcHNAbGludXgtbWlwcy5vcmc+OyAi SmFtZXMgRSAuIEogLkJvdHRvbWxleSI8amVqYkBsaW51eC52bmV0LmlibS5jb20+OyAiTWFy dGluIEsgLiBQZXRlcnNlbiI8bWFydGluLnBldGVyc2VuQG9yYWNsZS5jb20+OyAibGludXgt c2NzaSI8bGludXgtc2NzaUB2Z2VyLmtlcm5lbC5vcmc+OyAiVGVqdW4gSGVvIjx0akBrZXJu ZWwub3JnPjsgImxpbnV4LWlkZSI8bGludXgtaWRlQHZnZXIua2VybmVsLm9yZz47ICJzdGFi bGUiPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+OyANClN1YmplY3Q6ICBSZTogW1BBVENIIFY4 IDQvNV0gbGlic2FzOiBBbGlnbiBTTVAgcmVxL3Jlc3AgdG9kbWFfZ2V0X2NhY2hlX2FsaWdu bWVudCgpDQoNCiANCkhpIEh1YWNhaSwNCg0KT24gMjAxNy0xMC0xNyAxMDowNSwgSHVhY2Fp IENoZW4gd3JvdGU6DQo+IEluIG5vbi1jb2hlcmVudCBETUEgbW9kZSwga2VybmVsIHVzZXMg Y2FjaGUgZmx1c2hpbmcgb3BlcmF0aW9ucyB0bw0KPiBtYWludGFpbiBJL08gY29oZXJlbmN5 LCBzbyBsaWJzYXMncyBTTVAgcmVxdWVzdC9yZXNwb25zZSBzaG91bGQgYmUNCj4gYWxpZ25l ZCB0byBBUkNIX0RNQV9NSU5BTElHTi4gT3RoZXJ3aXNlLCBJZiBhIERNQSBidWZmZXIgYW5k IGEga2VybmVsDQo+IHN0cnVjdHVyZSBzaGFyZSBhIHNhbWUgY2FjaGUgbGluZSwgYW5kIGlm IHRoZSBrZXJuZWwgc3RydWN0dXJlIGhhcw0KPiBkaXJ0eSBkYXRhLCBjYWNoZV9pbnZhbGlk YXRlIChubyB3cml0ZWJhY2spIHdpbGwgY2F1c2UgZGF0YSBjb3JydXB0aW9uLg0KPg0KPiBD Yzogc3RhYmxlQHZnZXIua2VybmVsLm9yZw0KPiBTaWduZWQtb2ZmLWJ5OiBIdWFjYWkgQ2hl biA8Y2hlbmhjQGxlbW90ZS5jb20+DQo+IC0tLQ0KPiAgIGRyaXZlcnMvc2NzaS9saWJzYXMv c2FzX2V4cGFuZGVyLmMgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLQ0KPiAgIDEgZmlsZSBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlv bnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9saWJzYXMvc2FzX2V4cGFu ZGVyLmMgYi9kcml2ZXJzL3Njc2kvbGlic2FzL3Nhc19leHBhbmRlci5jDQo+IGluZGV4IDZi NGZkMjMuLjEyNGE0NGIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvc2NzaS9saWJzYXMvc2Fz X2V4cGFuZGVyLmMNCj4gKysrIGIvZHJpdmVycy9zY3NpL2xpYnNhcy9zYXNfZXhwYW5kZXIu Yw0KPiBAQCAtMTY0LDE3ICsxNjQsMTcgQEAgc3RhdGljIGludCBzbXBfZXhlY3V0ZV90YXNr KHN0cnVjdCBkb21haW5fZGV2aWNlICpkZXYsIHZvaWQgKnJlcSwgaW50IHJlcV9zaXplLA0K PiAgIA0KPiAgIC8qIC0tLS0tLS0tLS0gQWxsb2NhdGlvbnMgLS0tLS0tLS0tLSAqLw0KPiAg IA0KPiAtc3RhdGljIGlubGluZSB2b2lkICphbGxvY19zbXBfcmVxKGludCBzaXplKQ0KPiAr c3RhdGljIGlubGluZSB2b2lkICphbGxvY19zbXBfcmVxKGludCBzaXplLCBpbnQgYWxpZ24p DQo+ICAgew0KPiAtCXU4ICpwID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsNCj4gKwl1 OCAqcCA9IGt6YWxsb2MoQUxJR04oc2l6ZSwgYWxpZ24pLCBHRlBfS0VSTkVMKTsNCg0KSWYg SSByZW1lbWJlciBjb3JyZWN0bHksIGtlcm5lbCBndWFyYW50ZWVzIHRoYXQgZWFjaCBrbWFs bG9jZWQgYnVmZmVyIGlzDQphbHdheXMgYXQgbGVhc3QgYWxpZ25lZCB0byB0aGUgQ1BVIGNh Y2hlIGxpbmUsIHNvIENQVSBjYWNoZSBjYW4gYmUNCmludmFsaWRhdGVkIG9uIHRoZSBhbGxv Y2F0ZWQgYnVmZmVyIHdpdGhvdXQgY29ycnVwdGluZyBhbnl0aGluZyBlbHNlLg0KVGFraW5n IHRoaXMgaW50byBhY2NvdW50LCBJIHdvbmRlciBpZiB0aGUgYWJvdmUgY2hhbmdlIG1ha2Ug c2Vuc2UuDQoNCkhhdmUgeW91IGV4cGVyaWVuY2VkIGFueSBwcm9ibGVtcyB3aXRob3V0IHRo aXMgY2hhbmdlPw0KDQo+ICAgCWlmIChwKQ0KPiAgIAkJcFswXSA9IFNNUF9SRVFVRVNUOw0K PiAgIAlyZXR1cm4gcDsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgaW5saW5lIHZvaWQgKmFs bG9jX3NtcF9yZXNwKGludCBzaXplKQ0KPiArc3RhdGljIGlubGluZSB2b2lkICphbGxvY19z bXBfcmVzcChpbnQgc2l6ZSwgaW50IGFsaWduKQ0KPiAgIHsNCj4gLQlyZXR1cm4ga3phbGxv YyhzaXplLCBHRlBfS0VSTkVMKTsNCj4gKwlyZXR1cm4ga3phbGxvYyhBTElHTihzaXplLCBh bGlnbiksIEdGUF9LRVJORUwpOw0KDQpTYXZlIGEgYWJvdmUuDQoNCj4gICB9DQo+ICAgDQo+ ICAgc3RhdGljIGNoYXIgc2FzX3JvdXRlX2NoYXIoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRl diwgc3RydWN0IGV4X3BoeSAqcGh5KQ0KPiBAQCAtNDAzLDE1ICs0MDMsMTcgQEAgc3RhdGlj IGludCBzYXNfZXhfcGh5X2Rpc2NvdmVyX2hlbHBlcihzdHJ1Y3QgZG9tYWluX2RldmljZSAq ZGV2LCB1OCAqZGlzY19yZXEsDQo+ICAgaW50IHNhc19leF9waHlfZGlzY292ZXIoc3RydWN0 IGRvbWFpbl9kZXZpY2UgKmRldiwgaW50IHNpbmdsZSkNCj4gICB7DQo+ICAgCXN0cnVjdCBl eHBhbmRlcl9kZXZpY2UgKmV4ID0gJmRldi0+ZXhfZGV2Ow0KPiAtCWludCAgcmVzID0gMDsN Cj4gKwlpbnQgIHJlcyA9IDAsIGFsaWduOw0KPiAgIAl1OCAgICpkaXNjX3JlcTsNCj4gICAJ dTggICAqZGlzY19yZXNwOw0KPiAgIA0KPiAtCWRpc2NfcmVxID0gYWxsb2Nfc21wX3JlcShE SVNDT1ZFUl9SRVFfU0laRSk7DQo+ICsJYWxpZ24gPSBkbWFfZ2V0X2NhY2hlX2FsaWdubWVu dCgmZGV2LT5waHktPmRldik7DQo+ICsNCj4gKwlkaXNjX3JlcSA9IGFsbG9jX3NtcF9yZXEo RElTQ09WRVJfUkVRX1NJWkUsIGFsaWduKTsNCj4gICAJaWYgKCFkaXNjX3JlcSkNCj4gICAJ CXJldHVybiAtRU5PTUVNOw0KPiAgIA0KPiAtCWRpc2NfcmVzcCA9IGFsbG9jX3NtcF9yZXNw KERJU0NPVkVSX1JFU1BfU0laRSk7DQo+ICsJZGlzY19yZXNwID0gYWxsb2Nfc21wX3Jlc3Ao RElTQ09WRVJfUkVTUF9TSVpFLCBhbGlnbik7DQo+ICAgCWlmICghZGlzY19yZXNwKSB7DQo+ ICAgCQlrZnJlZShkaXNjX3JlcSk7DQo+ICAgCQlyZXR1cm4gLUVOT01FTTsNCj4gQEAgLTQ4 MCwxNCArNDgyLDE1IEBAIHN0YXRpYyBpbnQgc2FzX2V4X2dlbmVyYWwoc3RydWN0IGRvbWFp bl9kZXZpY2UgKmRldikNCj4gICB7DQo+ICAgCXU4ICpyZ19yZXE7DQo+ICAgCXN0cnVjdCBz bXBfcmVzcCAqcmdfcmVzcDsNCj4gLQlpbnQgcmVzOw0KPiAtCWludCBpOw0KPiArCWludCBp LCByZXMsIGFsaWduOw0KPiAgIA0KPiAtCXJnX3JlcSA9IGFsbG9jX3NtcF9yZXEoUkdfUkVR X1NJWkUpOw0KPiArCWFsaWduID0gZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoJmRldi0+cGh5 LT5kZXYpOw0KPiArDQo+ICsJcmdfcmVxID0gYWxsb2Nfc21wX3JlcShSR19SRVFfU0laRSwg YWxpZ24pOw0KPiAgIAlpZiAoIXJnX3JlcSkNCj4gICAJCXJldHVybiAtRU5PTUVNOw0KPiAg IA0KPiAtCXJnX3Jlc3AgPSBhbGxvY19zbXBfcmVzcChSR19SRVNQX1NJWkUpOw0KPiArCXJn X3Jlc3AgPSBhbGxvY19zbXBfcmVzcChSR19SRVNQX1NJWkUsIGFsaWduKTsNCj4gICAJaWYg KCFyZ19yZXNwKSB7DQo+ICAgCQlrZnJlZShyZ19yZXEpOw0KPiAgIAkJcmV0dXJuIC1FTk9N RU07DQo+IEBAIC01NTIsMTMgKzU1NSwxNSBAQCBzdGF0aWMgaW50IHNhc19leF9tYW51Zl9p bmZvKHN0cnVjdCBkb21haW5fZGV2aWNlICpkZXYpDQo+ICAgew0KPiAgIAl1OCAqbWlfcmVx Ow0KPiAgIAl1OCAqbWlfcmVzcDsNCj4gLQlpbnQgcmVzOw0KPiArCWludCByZXMsIGFsaWdu Ow0KPiAgIA0KPiAtCW1pX3JlcSA9IGFsbG9jX3NtcF9yZXEoTUlfUkVRX1NJWkUpOw0KPiAr CWFsaWduID0gZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoJmRldi0+cGh5LT5kZXYpOw0KPiAr DQo+ICsJbWlfcmVxID0gYWxsb2Nfc21wX3JlcShNSV9SRVFfU0laRSwgYWxpZ24pOw0KPiAg IAlpZiAoIW1pX3JlcSkNCj4gICAJCXJldHVybiAtRU5PTUVNOw0KPiAgIA0KPiAtCW1pX3Jl c3AgPSBhbGxvY19zbXBfcmVzcChNSV9SRVNQX1NJWkUpOw0KPiArCW1pX3Jlc3AgPSBhbGxv Y19zbXBfcmVzcChNSV9SRVNQX1NJWkUsIGFsaWduKTsNCj4gICAJaWYgKCFtaV9yZXNwKSB7 DQo+ICAgCQlrZnJlZShtaV9yZXEpOw0KPiAgIAkJcmV0dXJuIC1FTk9NRU07DQo+IEBAIC01 OTMsMTMgKzU5OCwxNSBAQCBpbnQgc2FzX3NtcF9waHlfY29udHJvbChzdHJ1Y3QgZG9tYWlu X2RldmljZSAqZGV2LCBpbnQgcGh5X2lkLA0KPiAgIHsNCj4gICAJdTggKnBjX3JlcTsNCj4g ICAJdTggKnBjX3Jlc3A7DQo+IC0JaW50IHJlczsNCj4gKwlpbnQgcmVzLCBhbGlnbjsNCj4g Kw0KPiArCWFsaWduID0gZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoJmRldi0+cGh5LT5kZXYp Ow0KPiAgIA0KPiAtCXBjX3JlcSA9IGFsbG9jX3NtcF9yZXEoUENfUkVRX1NJWkUpOw0KPiAr CXBjX3JlcSA9IGFsbG9jX3NtcF9yZXEoUENfUkVRX1NJWkUsIGFsaWduKTsNCj4gICAJaWYg KCFwY19yZXEpDQo+ICAgCQlyZXR1cm4gLUVOT01FTTsNCj4gICANCj4gLQlwY19yZXNwID0g YWxsb2Nfc21wX3Jlc3AoUENfUkVTUF9TSVpFKTsNCj4gKwlwY19yZXNwID0gYWxsb2Nfc21w X3Jlc3AoUENfUkVTUF9TSVpFLCBhbGlnbik7DQo+ICAgCWlmICghcGNfcmVzcCkgew0KPiAg IAkJa2ZyZWUocGNfcmVxKTsNCj4gICAJCXJldHVybiAtRU5PTUVNOw0KPiBAQCAtNjY0LDE3 ICs2NzEsMTkgQEAgc3RhdGljIGludCBzYXNfZGV2X3ByZXNlbnRfaW5fZG9tYWluKHN0cnVj dCBhc2Rfc2FzX3BvcnQgKnBvcnQsDQo+ICAgI2RlZmluZSBSUEVMX1JFU1BfU0laRQkzMg0K PiAgIGludCBzYXNfc21wX2dldF9waHlfZXZlbnRzKHN0cnVjdCBzYXNfcGh5ICpwaHkpDQo+ ICAgew0KPiAtCWludCByZXM7DQo+ICsJaW50IHJlcywgYWxpZ247DQo+ICAgCXU4ICpyZXE7 DQo+ICAgCXU4ICpyZXNwOw0KPiAgIAlzdHJ1Y3Qgc2FzX3JwaHkgKnJwaHkgPSBkZXZfdG9f cnBoeShwaHktPmRldi5wYXJlbnQpOw0KPiAgIAlzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2 ID0gc2FzX2ZpbmRfZGV2X2J5X3JwaHkocnBoeSk7DQo+ICAgDQo+IC0JcmVxID0gYWxsb2Nf c21wX3JlcShSUEVMX1JFUV9TSVpFKTsNCj4gKwlhbGlnbiA9IGRtYV9nZXRfY2FjaGVfYWxp Z25tZW50KCZwaHktPmRldik7DQo+ICsNCj4gKwlyZXEgPSBhbGxvY19zbXBfcmVxKFJQRUxf UkVRX1NJWkUsIGFsaWduKTsNCj4gICAJaWYgKCFyZXEpDQo+ICAgCQlyZXR1cm4gLUVOT01F TTsNCj4gICANCj4gLQlyZXNwID0gYWxsb2Nfc21wX3Jlc3AoUlBFTF9SRVNQX1NJWkUpOw0K PiArCXJlc3AgPSBhbGxvY19zbXBfcmVzcChSUEVMX1JFU1BfU0laRSwgYWxpZ24pOw0KPiAg IAlpZiAoIXJlc3ApIHsNCj4gICAJCWtmcmVlKHJlcSk7DQo+ICAgCQlyZXR1cm4gLUVOT01F TTsNCj4gQEAgLTcwOSw3ICs3MTgsOCBAQCBpbnQgc2FzX2dldF9yZXBvcnRfcGh5X3NhdGEo c3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldiwgaW50IHBoeV9pZCwNCj4gICAJCQkgICAgc3Ry dWN0IHNtcF9yZXNwICpycHNfcmVzcCkNCj4gICB7DQo+ICAgCWludCByZXM7DQo+IC0JdTgg KnJwc19yZXEgPSBhbGxvY19zbXBfcmVxKFJQU19SRVFfU0laRSk7DQo+ICsJaW50IGFsaWdu ID0gZG1hX2dldF9jYWNoZV9hbGlnbm1lbnQoJmRldi0+cGh5LT5kZXYpOw0KPiArCXU4ICpy cHNfcmVxID0gYWxsb2Nfc21wX3JlcShSUFNfUkVRX1NJWkUsIGFsaWduKTsNCj4gICAJdTgg KnJlc3AgPSAodTggKilycHNfcmVzcDsNCj4gICANCj4gICAJaWYgKCFycHNfcmVxKQ0KPiBA QCAtMTM5OCw3ICsxNDA4LDcgQEAgc3RhdGljIGludCBzYXNfY2hlY2tfcGFyZW50X3RvcG9s b2d5KHN0cnVjdCBkb21haW5fZGV2aWNlICpjaGlsZCkNCj4gICBzdGF0aWMgaW50IHNhc19j b25maWd1cmVfcHJlc2VudChzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2LCBpbnQgcGh5X2lk LA0KPiAgIAkJCQkgdTggKnNhc19hZGRyLCBpbnQgKmluZGV4LCBpbnQgKnByZXNlbnQpDQo+ ICAgew0KPiAtCWludCBpLCByZXMgPSAwOw0KPiArCWludCBpLCByZXMgPSAwLCBhbGlnbjsN Cj4gICAJc3RydWN0IGV4cGFuZGVyX2RldmljZSAqZXggPSAmZGV2LT5leF9kZXY7DQo+ICAg CXN0cnVjdCBleF9waHkgKnBoeSA9ICZleC0+ZXhfcGh5W3BoeV9pZF07DQo+ICAgCXU4ICpy cmlfcmVxOw0KPiBAQCAtMTQwNiwxMiArMTQxNiwxMyBAQCBzdGF0aWMgaW50IHNhc19jb25m aWd1cmVfcHJlc2VudChzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2LCBpbnQgcGh5X2lkLA0K PiAgIA0KPiAgIAkqcHJlc2VudCA9IDA7DQo+ICAgCSppbmRleCA9IDA7DQo+ICsJYWxpZ24g PSBkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgmZGV2LT5waHktPmRldik7DQo+ICAgDQo+IC0J cnJpX3JlcSA9IGFsbG9jX3NtcF9yZXEoUlJJX1JFUV9TSVpFKTsNCj4gKwlycmlfcmVxID0g YWxsb2Nfc21wX3JlcShSUklfUkVRX1NJWkUsIGFsaWduKTsNCj4gICAJaWYgKCFycmlfcmVx KQ0KPiAgIAkJcmV0dXJuIC1FTk9NRU07DQo+ICAgDQo+IC0JcnJpX3Jlc3AgPSBhbGxvY19z bXBfcmVzcChSUklfUkVTUF9TSVpFKTsNCj4gKwlycmlfcmVzcCA9IGFsbG9jX3NtcF9yZXNw KFJSSV9SRVNQX1NJWkUsIGFsaWduKTsNCj4gICAJaWYgKCFycmlfcmVzcCkgew0KPiAgIAkJ a2ZyZWUocnJpX3JlcSk7DQo+ICAgCQlyZXR1cm4gLUVOT01FTTsNCj4gQEAgLTE0NzIsMTUg KzE0ODMsMTcgQEAgc3RhdGljIGludCBzYXNfY29uZmlndXJlX3ByZXNlbnQoc3RydWN0IGRv bWFpbl9kZXZpY2UgKmRldiwgaW50IHBoeV9pZCwNCj4gICBzdGF0aWMgaW50IHNhc19jb25m aWd1cmVfc2V0KHN0cnVjdCBkb21haW5fZGV2aWNlICpkZXYsIGludCBwaHlfaWQsDQo+ICAg CQkJICAgICB1OCAqc2FzX2FkZHIsIGludCBpbmRleCwgaW50IGluY2x1ZGUpDQo+ICAgew0K PiAtCWludCByZXM7DQo+ICsJaW50IHJlcywgYWxpZ247DQo+ICAgCXU4ICpjcmlfcmVxOw0K PiAgIAl1OCAqY3JpX3Jlc3A7DQo+ICAgDQo+IC0JY3JpX3JlcSA9IGFsbG9jX3NtcF9yZXEo Q1JJX1JFUV9TSVpFKTsNCj4gKwlhbGlnbiA9IGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KCZk ZXYtPnBoeS0+ZGV2KTsNCj4gKw0KPiArCWNyaV9yZXEgPSBhbGxvY19zbXBfcmVxKENSSV9S RVFfU0laRSwgYWxpZ24pOw0KPiAgIAlpZiAoIWNyaV9yZXEpDQo+ICAgCQlyZXR1cm4gLUVO T01FTTsNCj4gICANCj4gLQljcmlfcmVzcCA9IGFsbG9jX3NtcF9yZXNwKENSSV9SRVNQX1NJ WkUpOw0KPiArCWNyaV9yZXNwID0gYWxsb2Nfc21wX3Jlc3AoQ1JJX1JFU1BfU0laRSwgYWxp Z24pOw0KPiAgIAlpZiAoIWNyaV9yZXNwKSB7DQo+ICAgCQlrZnJlZShjcmlfcmVxKTsNCj4g ICAJCXJldHVybiAtRU5PTUVNOw0KPiBAQCAtMTY4OSwxMCArMTcwMiwxMiBAQCBpbnQgc2Fz X2Rpc2NvdmVyX3Jvb3RfZXhwYW5kZXIoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldikNCj4g ICBzdGF0aWMgaW50IHNhc19nZXRfcGh5X2Rpc2NvdmVyKHN0cnVjdCBkb21haW5fZGV2aWNl ICpkZXYsDQo+ICAgCQkJCWludCBwaHlfaWQsIHN0cnVjdCBzbXBfcmVzcCAqZGlzY19yZXNw KQ0KPiAgIHsNCj4gLQlpbnQgcmVzOw0KPiArCWludCByZXMsIGFsaWduOw0KPiAgIAl1OCAq ZGlzY19yZXE7DQo+ICAgDQo+IC0JZGlzY19yZXEgPSBhbGxvY19zbXBfcmVxKERJU0NPVkVS X1JFUV9TSVpFKTsNCj4gKwlhbGlnbiA9IGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KCZkZXYt PnBoeS0+ZGV2KTsNCj4gKw0KPiArCWRpc2NfcmVxID0gYWxsb2Nfc21wX3JlcShESVNDT1ZF Ul9SRVFfU0laRSwgYWxpZ24pOw0KPiAgIAlpZiAoIWRpc2NfcmVxKQ0KPiAgIAkJcmV0dXJu IC1FTk9NRU07DQo+ICAgDQo+IEBAIC0xNzE1LDEwICsxNzMwLDEyIEBAIHN0YXRpYyBpbnQg c2FzX2dldF9waHlfZGlzY292ZXIoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldiwNCj4gICBz dGF0aWMgaW50IHNhc19nZXRfcGh5X2NoYW5nZV9jb3VudChzdHJ1Y3QgZG9tYWluX2Rldmlj ZSAqZGV2LA0KPiAgIAkJCQkgICAgaW50IHBoeV9pZCwgaW50ICpwY2MpDQo+ICAgew0KPiAt CWludCByZXM7DQo+ICsJaW50IHJlcywgYWxpZ247DQo+ICAgCXN0cnVjdCBzbXBfcmVzcCAq ZGlzY19yZXNwOw0KPiAgIA0KPiAtCWRpc2NfcmVzcCA9IGFsbG9jX3NtcF9yZXNwKERJU0NP VkVSX1JFU1BfU0laRSk7DQo+ICsJYWxpZ24gPSBkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgm ZGV2LT5waHktPmRldik7DQo+ICsNCj4gKwlkaXNjX3Jlc3AgPSBhbGxvY19zbXBfcmVzcChE SVNDT1ZFUl9SRVNQX1NJWkUsIGFsaWduKTsNCj4gICAJaWYgKCFkaXNjX3Jlc3ApDQo+ICAg CQlyZXR1cm4gLUVOT01FTTsNCj4gICANCj4gQEAgLTE3MzMsMTEgKzE3NTAsMTMgQEAgc3Rh dGljIGludCBzYXNfZ2V0X3BoeV9jaGFuZ2VfY291bnQoc3RydWN0IGRvbWFpbl9kZXZpY2Ug KmRldiwNCj4gICBzdGF0aWMgaW50IHNhc19nZXRfcGh5X2F0dGFjaGVkX2RldihzdHJ1Y3Qg ZG9tYWluX2RldmljZSAqZGV2LCBpbnQgcGh5X2lkLA0KPiAgIAkJCQkgICAgdTggKnNhc19h ZGRyLCBlbnVtIHNhc19kZXZpY2VfdHlwZSAqdHlwZSkNCj4gICB7DQo+IC0JaW50IHJlczsN Cj4gKwlpbnQgcmVzLCBhbGlnbjsNCj4gICAJc3RydWN0IHNtcF9yZXNwICpkaXNjX3Jlc3A7 DQo+ICAgCXN0cnVjdCBkaXNjb3Zlcl9yZXNwICpkcjsNCj4gICANCj4gLQlkaXNjX3Jlc3Ag PSBhbGxvY19zbXBfcmVzcChESVNDT1ZFUl9SRVNQX1NJWkUpOw0KPiArCWFsaWduID0gZG1h X2dldF9jYWNoZV9hbGlnbm1lbnQoJmRldi0+cGh5LT5kZXYpOw0KPiArDQo+ICsJZGlzY19y ZXNwID0gYWxsb2Nfc21wX3Jlc3AoRElTQ09WRVJfUkVTUF9TSVpFLCBhbGlnbik7DQo+ICAg CWlmICghZGlzY19yZXNwKQ0KPiAgIAkJcmV0dXJuIC1FTk9NRU07DQo+ICAgCWRyID0gJmRp c2NfcmVzcC0+ZGlzYzsNCj4gQEAgLTE3ODcsMTUgKzE4MDYsMTcgQEAgc3RhdGljIGludCBz YXNfZmluZF9iY2FzdF9waHkoc3RydWN0IGRvbWFpbl9kZXZpY2UgKmRldiwgaW50ICpwaHlf aWQsDQo+ICAgDQo+ICAgc3RhdGljIGludCBzYXNfZ2V0X2V4X2NoYW5nZV9jb3VudChzdHJ1 Y3QgZG9tYWluX2RldmljZSAqZGV2LCBpbnQgKmVjYykNCj4gICB7DQo+IC0JaW50IHJlczsN Cj4gKwlpbnQgcmVzLCBhbGlnbjsNCj4gICAJdTggICpyZ19yZXE7DQo+ICAgCXN0cnVjdCBz bXBfcmVzcCAgKnJnX3Jlc3A7DQo+ICAgDQo+IC0JcmdfcmVxID0gYWxsb2Nfc21wX3JlcShS R19SRVFfU0laRSk7DQo+ICsJYWxpZ24gPSBkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgmZGV2 LT5waHktPmRldik7DQo+ICsNCj4gKwlyZ19yZXEgPSBhbGxvY19zbXBfcmVxKFJHX1JFUV9T SVpFLCBhbGlnbik7DQo+ICAgCWlmICghcmdfcmVxKQ0KPiAgIAkJcmV0dXJuIC1FTk9NRU07 DQo+ICAgDQo+IC0JcmdfcmVzcCA9IGFsbG9jX3NtcF9yZXNwKFJHX1JFU1BfU0laRSk7DQo+ ICsJcmdfcmVzcCA9IGFsbG9jX3NtcF9yZXNwKFJHX1JFU1BfU0laRSwgYWxpZ24pOw0KPiAg IAlpZiAoIXJnX3Jlc3ApIHsNCj4gICAJCWtmcmVlKHJnX3JlcSk7DQo+ICAgCQlyZXR1cm4g LUVOT01FTTsNCg0KQmVzdCByZWdhcmRzDQotLSANCk1hcmVrIFN6eXByb3dza2ksIFBoRA0K U2Ftc3VuZyBSJkQgSW5zdGl0dXRlIFBvbGFuZA==