From: Xuelin Shi <xuelin.shi@freescale.com>
To: "Shevchenko, Andriy" <andriy.shevchenko@intel.com>
Cc: "Koul, Vinod" <vinod.koul@intel.com>,
"dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>,
"Williams, Dan J" <dan.j.williams@intel.com>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: RE: [PATCH v2] fix wrong usage of dmaengine_unmap_put in async_xxx
Date: Thu, 20 Mar 2014 09:53:01 +0000 [thread overview]
Message-ID: <bcaf8719e4bd455dbd6d00a134082c85@BY2PR03MB158.namprd03.prod.outlook.com> (raw)
In-Reply-To: <1395308689.28803.323.camel@smile.fi.intel.com>
WWVzLCB0aGlzIHBhdGNoIGlzIHJ1biBieSBjaGVja3BhdGNoIGFuZCBmb3VuZCAwIGVycm9ycywg
MCB3YXJuaW5ncy4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFNoZXZjaGVu
a28sIEFuZHJpeSBbbWFpbHRvOmFuZHJpeS5zaGV2Y2hlbmtvQGludGVsLmNvbV0gDQpTZW50OiAy
MDE05bm0M+aciDIw5pelIDE3OjQ1DQpUbzogU2hpIFh1ZWxpbi1CMjkyMzcNCkNjOiBLb3VsLCBW
aW5vZDsgV2lsbGlhbXMsIERhbiBKOyBkbWFlbmdpbmVAdmdlci5rZXJuZWwub3JnOyBsaW51eHBw
Yy1kZXZAbGlzdHMub3psYWJzLm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSCB2Ml0gZml4IHdyb25n
IHVzYWdlIG9mIGRtYWVuZ2luZV91bm1hcF9wdXQgaW4gYXN5bmNfeHh4DQoNCk9uIFRodSwgMjAx
NC0wMy0yMCBhdCAxNjoxNiArMDgwMCwgeHVlbGluLnNoaUBmcmVlc2NhbGUuY29tIHdyb3RlOg0K
PiBGcm9tOiBYdWVsaW4gU2hpIDx4dWVsaW4uc2hpQGZyZWVzY2FsZS5jb20+DQo+IA0KPiBkbWFl
bmdpbmVfdW5tYXBfcHV0IGRvZXMgYmVsb3cgdHdvIHRoaW5nczoNCj4gYSkgdW5tYXAgcGFnZXMg
Zm9yIHNyY3MgYW5kIGRlc3RzDQo+IGIpIGZyZWUgdW5tYXAgc3RydWN0DQo+IA0KPiBUaGUgdW5t
YXAgc3RydWN0IGRhdGEgaXMgZ2VuZXJhdGVkIGJ1dCBvbmx5IGluaXRpYWxpemVkIHdoaWxlIG90
aGVyIA0KPiBzb21lIGRtYSBjb250aW9ucyBhcmUgbWV0LCBsaWtlIGRtYSBhbGlnbm1lbnQgZXRj
Lg0KPiBJZiB0aGUgdW5tYXAgZGF0YSBpcyBub3QgaW5pdGlhbGl6ZWQsIGNhbGwgZG1hZW5naW5l
X3VubWFwX3B1dCB3aWxsIA0KPiB1bm1hcCBzb21lIHJhbmRvbSBkYXRhIGluIHVubWFwLT5hZGRy
Wy4uLl0NCj4gDQo+IEFsc28gY2FsbCBkbWFlbmdpbmVfZ2V0X3VubWFwX2RhdGEgaW1tZWRpYXRh
bGx5IGFmdGVyIGdlbmVyYXRpbmcgdHggaXMgDQo+IG5vdCBjb3JyZWN0LiBNYXliZSB0aGUgdHgg
aGFzIG5vdCBiZWVuIGZpbmlzaGVkIGJ5IERNQSBoYXJkd2FyZSB5ZXQgDQo+IGJ1dCB0aGUgc3Jj
cyBhbmQgZGVzdHMgYXJlIGRtYSB1bm1hcHBlZC4NCj4gDQo+IFRoaXMgcGF0Y2ggZml4ZWQgYWJv
dmUgdHdvIGlzc3VlcyBieToNCj4gYSkgb25seSBnZW5lcmF0ZXMgdW5tYXAgc3RydWN0IGRhdGEg
d2hlbiBvdGhlciBkbWEgY29uZGl0aW9ucyBhcmUgbWV0Lg0KPiBiKSBlbGltaW5hdGVzIGRtYWVu
Z2luZV91bm1hcF9wdXQgd2hlbiB0eCBpcyBnZW5lcmF0ZWQgYmVjYXVzZSB0eCANCj4ga25vd2Vz
IHRoZSBiZXN0IHRpbWUgdG8gdW5tYXAgaXQgKGluIGludGVycnVwdCBwcm9jZXNzaW5nKS4NCg0K
SGF2ZSB5b3UgcnVuIGNoZWNrcGF0Y2gucGwgYWdhaW5zdCB0aGlzIG9uZT8NCg0KPiANCj4gU2ln
bmVkLW9mZi1ieTogWHVlbGluIFNoaSA8eHVlbGluLnNoaUBmcmVlc2NhbGUuY29tPg0KPiAtLS0N
Cj4gY2hhbmdlIGxvZzoNCj4gCXYxOiBpbmNsdWRlIGNoYW5nZSBpbiBhc3luY19tZW1jcHksIGFz
eW5jX3hvciwgYXN5bmNfcHENCj4gIAl2MjogYWRkIGNoYW5nZSBpbiBhc3luY19yYWlkNl9yZWNv
di5jIGFuZCBmaXggc29tZSBzdHlsZSBpc3N1ZQ0KPiANCj4gIGNyeXB0by9hc3luY190eC9hc3lu
Y19tZW1jcHkuYyAgICAgIHwgIDgwICsrKysrKysrLS0tLS0tLQ0KPiAgY3J5cHRvL2FzeW5jX3R4
L2FzeW5jX3BxLmMgICAgICAgICAgfCAxODkgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t
LS0tLS0tDQo+ICBjcnlwdG8vYXN5bmNfdHgvYXN5bmNfcmFpZDZfcmVjb3YuYyB8IDEwOCArKysr
KysrKysrKy0tLS0tLS0tLS0NCj4gIGNyeXB0by9hc3luY190eC9hc3luY194b3IuYyAgICAgICAg
IHwgMTY0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCj4gIDQgZmlsZXMgY2hhbmdl
ZCwgMjg2IGluc2VydGlvbnMoKyksIDI1NSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQg
YS9jcnlwdG8vYXN5bmNfdHgvYXN5bmNfbWVtY3B5LmMgDQo+IGIvY3J5cHRvL2FzeW5jX3R4L2Fz
eW5jX21lbWNweS5jIGluZGV4IGY4YzBiOGQuLjY1NDZlODcgMTAwNjQ0DQo+IC0tLSBhL2NyeXB0
by9hc3luY190eC9hc3luY19tZW1jcHkuYw0KPiArKysgYi9jcnlwdG8vYXN5bmNfdHgvYXN5bmNf
bWVtY3B5LmMNCj4gQEAgLTUxLDExICs1MSwxMCBAQCBhc3luY19tZW1jcHkoc3RydWN0IHBhZ2Ug
KmRlc3QsIHN0cnVjdCBwYWdlICpzcmMsIHVuc2lnbmVkIGludCBkZXN0X29mZnNldCwNCj4gIAlz
dHJ1Y3QgZG1hX2RldmljZSAqZGV2aWNlID0gY2hhbiA/IGNoYW4tPmRldmljZSA6IE5VTEw7DQo+
ICAJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICp0eCA9IE5VTEw7DQo+ICAJc3RydWN0
IGRtYWVuZ2luZV91bm1hcF9kYXRhICp1bm1hcCA9IE5VTEw7DQo+ICsJdm9pZCAqZGVzdF9idWYs
ICpzcmNfYnVmOw0KPiAgDQo+IC0JaWYgKGRldmljZSkNCj4gLQkJdW5tYXAgPSBkbWFlbmdpbmVf
Z2V0X3VubWFwX2RhdGEoZGV2aWNlLT5kZXYsIDIsIEdGUF9OT0lPKTsNCj4gLQ0KPiAtCWlmICh1
bm1hcCAmJiBpc19kbWFfY29weV9hbGlnbmVkKGRldmljZSwgc3JjX29mZnNldCwgZGVzdF9vZmZz
ZXQsIGxlbikpIHsNCj4gKwlpZiAoZGV2aWNlICYmDQo+ICsJICAgIGlzX2RtYV9jb3B5X2FsaWdu
ZWQoZGV2aWNlLCBzcmNfb2Zmc2V0LCBkZXN0X29mZnNldCwgbGVuKSkgew0KPiAgCQl1bnNpZ25l
ZCBsb25nIGRtYV9wcmVwX2ZsYWdzID0gMDsNCj4gIA0KPiAgCQlpZiAoc3VibWl0LT5jYl9mbikN
Cj4gQEAgLTYzLDQ1ICs2Miw1NiBAQCBhc3luY19tZW1jcHkoc3RydWN0IHBhZ2UgKmRlc3QsIHN0
cnVjdCBwYWdlICpzcmMsIHVuc2lnbmVkIGludCBkZXN0X29mZnNldCwNCj4gIAkJaWYgKHN1Ym1p
dC0+ZmxhZ3MgJiBBU1lOQ19UWF9GRU5DRSkNCj4gIAkJCWRtYV9wcmVwX2ZsYWdzIHw9IERNQV9Q
UkVQX0ZFTkNFOw0KPiAgDQo+IC0JCXVubWFwLT50b19jbnQgPSAxOw0KPiAtCQl1bm1hcC0+YWRk
clswXSA9IGRtYV9tYXBfcGFnZShkZXZpY2UtPmRldiwgc3JjLCBzcmNfb2Zmc2V0LCBsZW4sDQo+
IC0JCQkJCSAgICAgIERNQV9UT19ERVZJQ0UpOw0KPiAtCQl1bm1hcC0+ZnJvbV9jbnQgPSAxOw0K
PiAtCQl1bm1hcC0+YWRkclsxXSA9IGRtYV9tYXBfcGFnZShkZXZpY2UtPmRldiwgZGVzdCwgZGVz
dF9vZmZzZXQsIGxlbiwNCj4gLQkJCQkJICAgICAgRE1BX0ZST01fREVWSUNFKTsNCj4gLQkJdW5t
YXAtPmxlbiA9IGxlbjsNCj4gLQ0KPiAtCQl0eCA9IGRldmljZS0+ZGV2aWNlX3ByZXBfZG1hX21l
bWNweShjaGFuLCB1bm1hcC0+YWRkclsxXSwNCj4gLQkJCQkJCSAgICB1bm1hcC0+YWRkclswXSwg
bGVuLA0KPiAtCQkJCQkJICAgIGRtYV9wcmVwX2ZsYWdzKTsNCj4gKwkJdW5tYXAgPSBkbWFlbmdp
bmVfZ2V0X3VubWFwX2RhdGEoZGV2aWNlLT5kZXYsIDIsIEdGUF9OT0lPKTsNCj4gKwkJaWYgKHVu
bWFwKSB7DQo+ICsJCQl1bm1hcC0+dG9fY250ID0gMTsNCj4gKwkJCXVubWFwLT5hZGRyWzBdID0g
ZG1hX21hcF9wYWdlKGRldmljZS0+ZGV2LCBzcmMsDQo+ICsJCQkJCQkgICAgICBzcmNfb2Zmc2V0
LCBsZW4sDQo+ICsJCQkJCQkgICAgICBETUFfVE9fREVWSUNFKTsNCj4gKwkJCXVubWFwLT5mcm9t
X2NudCA9IDE7DQo+ICsJCQl1bm1hcC0+YWRkclsxXSA9IGRtYV9tYXBfcGFnZShkZXZpY2UtPmRl
diwgZGVzdCwNCj4gKwkJCQkJCSAgICAgIGRlc3Rfb2Zmc2V0LCBsZW4sDQo+ICsJCQkJCQkgICAg
ICBETUFfRlJPTV9ERVZJQ0UpOw0KPiArCQkJdW5tYXAtPmxlbiA9IGxlbjsNCj4gKw0KPiArCQkJ
dHggPSBkZXZpY2UtPmRldmljZV9wcmVwX2RtYV9tZW1jcHkoY2hhbiwNCj4gKwkJCQkJCQkgICAg
dW5tYXAtPmFkZHJbMV0sDQo+ICsJCQkJCQkJICAgIHVubWFwLT5hZGRyWzBdLA0KPiArCQkJCQkJ
CSAgICBsZW4sDQo+ICsJCQkJCQkJICAgIGRtYV9wcmVwX2ZsYWdzKTsNCj4gKwkJCWlmICh0eCkg
ew0KPiArCQkJCXByX2RlYnVnKCIlczogKGFzeW5jKSBsZW46ICV6dVxuIiwgX19mdW5jX18sDQo+
ICsJCQkJCSBsZW4pOw0KPiArDQo+ICsJCQkJZG1hX3NldF91bm1hcCh0eCwgdW5tYXApOw0KPiAr
CQkJCWFzeW5jX3R4X3N1Ym1pdChjaGFuLCB0eCwgc3VibWl0KTsNCj4gKwkJCQlyZXR1cm4gdHg7
DQo+ICsJCQl9DQo+ICsNCj4gKwkJCS8qIGNvdWxkIG5vdCBnZXQgYSBkZXNjcmlwdG9yLCB1bm1h
cCBhbmQgZmFsbCB0aHJvdWdoIHRvDQo+ICsJCQkgKiB0aGUgc3luY2hyb25vdXMgcGF0aA0KPiAr
CQkJICovDQo+ICsJCQlkbWFlbmdpbmVfdW5tYXBfcHV0KHVubWFwKTsNCj4gKwkJfQ0KPiAgCX0N
Cj4gIA0KPiAtCWlmICh0eCkgew0KPiAtCQlwcl9kZWJ1ZygiJXM6IChhc3luYykgbGVuOiAlenVc
biIsIF9fZnVuY19fLCBsZW4pOw0KPiArCS8qIHJ1biB0aGUgb3BlcmF0aW9uIHN5bmNocm9ub3Vz
bHkgKi8NCj4gKwlwcl9kZWJ1ZygiJXM6IChzeW5jKSBsZW46ICV6dVxuIiwgX19mdW5jX18sIGxl
bik7DQo+ICANCj4gLQkJZG1hX3NldF91bm1hcCh0eCwgdW5tYXApOw0KPiAtCQlhc3luY190eF9z
dWJtaXQoY2hhbiwgdHgsIHN1Ym1pdCk7DQo+IC0JfSBlbHNlIHsNCj4gLQkJdm9pZCAqZGVzdF9i
dWYsICpzcmNfYnVmOw0KPiAtCQlwcl9kZWJ1ZygiJXM6IChzeW5jKSBsZW46ICV6dVxuIiwgX19m
dW5jX18sIGxlbik7DQo+ICsJLyogd2FpdCBmb3IgYW55IHByZXJlcXVpc2l0ZSBvcGVyYXRpb25z
ICovDQo+ICsJYXN5bmNfdHhfcXVpZXNjZSgmc3VibWl0LT5kZXBlbmRfdHgpOw0KPiAgDQo+IC0J
CS8qIHdhaXQgZm9yIGFueSBwcmVyZXF1aXNpdGUgb3BlcmF0aW9ucyAqLw0KPiAtCQlhc3luY190
eF9xdWllc2NlKCZzdWJtaXQtPmRlcGVuZF90eCk7DQo+ICsJZGVzdF9idWYgPSBrbWFwX2F0b21p
YyhkZXN0KSArIGRlc3Rfb2Zmc2V0Ow0KPiArCXNyY19idWYgPSBrbWFwX2F0b21pYyhzcmMpICsg
c3JjX29mZnNldDsNCj4gIA0KPiAtCQlkZXN0X2J1ZiA9IGttYXBfYXRvbWljKGRlc3QpICsgZGVz
dF9vZmZzZXQ7DQo+IC0JCXNyY19idWYgPSBrbWFwX2F0b21pYyhzcmMpICsgc3JjX29mZnNldDsN
Cj4gKwltZW1jcHkoZGVzdF9idWYsIHNyY19idWYsIGxlbik7DQo+ICANCj4gLQkJbWVtY3B5KGRl
c3RfYnVmLCBzcmNfYnVmLCBsZW4pOw0KPiAtDQo+IC0JCWt1bm1hcF9hdG9taWMoc3JjX2J1Zik7
DQo+IC0JCWt1bm1hcF9hdG9taWMoZGVzdF9idWYpOw0KPiAtDQo+IC0JCWFzeW5jX3R4X3N5bmNf
ZXBpbG9nKHN1Ym1pdCk7DQo+IC0JfQ0KPiArCWt1bm1hcF9hdG9taWMoc3JjX2J1Zik7DQo+ICsJ
a3VubWFwX2F0b21pYyhkZXN0X2J1Zik7DQo+ICANCj4gLQlkbWFlbmdpbmVfdW5tYXBfcHV0KHVu
bWFwKTsNCj4gKwlhc3luY190eF9zeW5jX2VwaWxvZyhzdWJtaXQpOw0KPiAgDQo+IC0JcmV0dXJu
IHR4Ow0KPiArCXJldHVybiBOVUxMOw0KPiAgfQ0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoYXN5bmNf
bWVtY3B5KTsNCj4gIA0KPiBkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzeW5jX3R4L2FzeW5jX3BxLmMg
Yi9jcnlwdG8vYXN5bmNfdHgvYXN5bmNfcHEuYyANCj4gaW5kZXggZDA1MzI3Yy4uZjQ0NmNkYSAx
MDA2NDQNCj4gLS0tIGEvY3J5cHRvL2FzeW5jX3R4L2FzeW5jX3BxLmMNCj4gKysrIGIvY3J5cHRv
L2FzeW5jX3R4L2FzeW5jX3BxLmMNCj4gQEAgLTE3NSwxMCArMTc1LDcgQEAgYXN5bmNfZ2VuX3N5
bmRyb21lKHN0cnVjdCBwYWdlICoqYmxvY2tzLCB1bnNpZ25lZCANCj4gaW50IG9mZnNldCwgaW50
IGRpc2tzLA0KPiAgDQo+ICAJQlVHX09OKGRpc2tzID4gMjU1IHx8ICEoUChibG9ja3MsIGRpc2tz
KSB8fCBRKGJsb2NrcywgZGlza3MpKSk7DQo+ICANCj4gLQlpZiAoZGV2aWNlKQ0KPiAtCQl1bm1h
cCA9IGRtYWVuZ2luZV9nZXRfdW5tYXBfZGF0YShkZXZpY2UtPmRldiwgZGlza3MsIEdGUF9OT0lP
KTsNCj4gLQ0KPiAtCWlmICh1bm1hcCAmJg0KPiArCWlmIChkZXZpY2UgJiYNCj4gIAkgICAgKHNy
Y19jbnQgPD0gZG1hX21heHBxKGRldmljZSwgMCkgfHwNCj4gIAkgICAgIGRtYV9tYXhwcShkZXZp
Y2UsIERNQV9QUkVQX0NPTlRJTlVFKSA+IDApICYmDQo+ICAJICAgIGlzX2RtYV9wcV9hbGlnbmVk
KGRldmljZSwgb2Zmc2V0LCAwLCBsZW4pKSB7IEBAIC0xOTQsNDYgKzE5MSw1NCANCj4gQEAgYXN5
bmNfZ2VuX3N5bmRyb21lKHN0cnVjdCBwYWdlICoqYmxvY2tzLCB1bnNpZ25lZCBpbnQgb2Zmc2V0
LCBpbnQgZGlza3MsDQo+ICAJCS8qIGNvbnZlcnQgc291cmNlIGFkZHJlc3NlcyBiZWluZyBjYXJl
ZnVsIHRvIGNvbGxhcHNlICdlbXB0eScNCj4gIAkJICogc291cmNlcyBhbmQgdXBkYXRlIHRoZSBj
b2VmZmljaWVudHMgYWNjb3JkaW5nbHkNCj4gIAkJICovDQo+IC0JCXVubWFwLT5sZW4gPSBsZW47
DQo+IC0JCWZvciAoaSA9IDAsIGogPSAwOyBpIDwgc3JjX2NudDsgaSsrKSB7DQo+IC0JCQlpZiAo
YmxvY2tzW2ldID09IE5VTEwpDQo+IC0JCQkJY29udGludWU7DQo+IC0JCQl1bm1hcC0+YWRkcltq
XSA9IGRtYV9tYXBfcGFnZShkZXZpY2UtPmRldiwgYmxvY2tzW2ldLCBvZmZzZXQsDQo+IC0JCQkJ
CQkgICAgICBsZW4sIERNQV9UT19ERVZJQ0UpOw0KPiAtCQkJY29lZnNbal0gPSByYWlkNl9nZmV4
cFtpXTsNCj4gLQkJCXVubWFwLT50b19jbnQrKzsNCj4gLQkJCWorKzsNCj4gLQkJfQ0KPiArCQl1
bm1hcCA9IGRtYWVuZ2luZV9nZXRfdW5tYXBfZGF0YShkZXZpY2UtPmRldiwgZGlza3MsIEdGUF9O
T0lPKTsNCj4gKwkJaWYgKHVubWFwKSB7DQo+ICsJCQl1bm1hcC0+bGVuID0gbGVuOw0KPiArCQkJ
Zm9yIChpID0gMCwgaiA9IDA7IGkgPCBzcmNfY250OyBpKyspIHsNCj4gKwkJCQlpZiAoYmxvY2tz
W2ldID09IE5VTEwpDQo+ICsJCQkJCWNvbnRpbnVlOw0KPiArCQkJCXVubWFwLT5hZGRyW2pdID0g
ZG1hX21hcF9wYWdlKGRldmljZS0+ZGV2LA0KPiArCQkJCQkJCSAgICAgIGJsb2Nrc1tpXSwNCj4g
KwkJCQkJCQkgICAgICBvZmZzZXQsDQo+ICsJCQkJCQkJICAgICAgbGVuLA0KPiArCQkJCQkJCSAg
ICAgIERNQV9UT19ERVZJQ0UpOw0KPiArCQkJCWNvZWZzW2pdID0gcmFpZDZfZ2ZleHBbaV07DQo+
ICsJCQkJdW5tYXAtPnRvX2NudCsrOw0KPiArCQkJCWorKzsNCj4gKwkJCX0NCj4gIA0KPiAtCQkv
Kg0KPiAtCQkgKiBETUFzIHVzZSBkZXN0aW5hdGlvbnMgYXMgc291cmNlcywNCj4gLQkJICogc28g
dXNlIEJJRElSRUNUSU9OQUwgbWFwcGluZw0KPiAtCQkgKi8NCj4gLQkJdW5tYXAtPmJpZGlfY250
Kys7DQo+IC0JCWlmIChQKGJsb2NrcywgZGlza3MpKQ0KPiAtCQkJdW5tYXAtPmFkZHJbaisrXSA9
IGRtYV9tYXBfcGFnZShkZXZpY2UtPmRldiwgUChibG9ja3MsIGRpc2tzKSwNCj4gLQkJCQkJCQlv
ZmZzZXQsIGxlbiwgRE1BX0JJRElSRUNUSU9OQUwpOw0KPiAtCQllbHNlIHsNCj4gLQkJCXVubWFw
LT5hZGRyW2orK10gPSAwOw0KPiAtCQkJZG1hX2ZsYWdzIHw9IERNQV9QUkVQX1BRX0RJU0FCTEVf
UDsNCj4gLQkJfQ0KPiArCQkJLyoNCj4gKwkJCSAqIERNQXMgdXNlIGRlc3RpbmF0aW9ucyBhcyBz
b3VyY2VzLA0KPiArCQkJICogc28gdXNlIEJJRElSRUNUSU9OQUwgbWFwcGluZw0KPiArCQkJICov
DQo+ICsJCQl1bm1hcC0+YmlkaV9jbnQrKzsNCj4gKwkJCWlmIChQKGJsb2NrcywgZGlza3MpKQ0K
PiArCQkJCXVubWFwLT5hZGRyW2orK10gPSBkbWFfbWFwX3BhZ2UoZGV2aWNlLT5kZXYsDQo+ICsJ
CQkJCQkJUChibG9ja3MsIGRpc2tzKSwNCj4gKwkJCQkJCQlvZmZzZXQsIGxlbiwNCj4gKwkJCQkJ
CQlETUFfQklESVJFQ1RJT05BTCk7DQo+ICsJCQllbHNlIHsNCj4gKwkJCQl1bm1hcC0+YWRkcltq
KytdID0gMDsNCj4gKwkJCQlkbWFfZmxhZ3MgfD0gRE1BX1BSRVBfUFFfRElTQUJMRV9QOw0KPiAr
CQkJfQ0KPiAgDQo+IC0JCXVubWFwLT5iaWRpX2NudCsrOw0KPiAtCQlpZiAoUShibG9ja3MsIGRp
c2tzKSkNCj4gLQkJCXVubWFwLT5hZGRyW2orK10gPSBkbWFfbWFwX3BhZ2UoZGV2aWNlLT5kZXYs
IFEoYmxvY2tzLCBkaXNrcyksDQo+IC0JCQkJCQkgICAgICAgb2Zmc2V0LCBsZW4sIERNQV9CSURJ
UkVDVElPTkFMKTsNCj4gLQkJZWxzZSB7DQo+IC0JCQl1bm1hcC0+YWRkcltqKytdID0gMDsNCj4g
LQkJCWRtYV9mbGFncyB8PSBETUFfUFJFUF9QUV9ESVNBQkxFX1E7DQo+IC0JCX0NCj4gKwkJCXVu
bWFwLT5iaWRpX2NudCsrOw0KPiArCQkJaWYgKFEoYmxvY2tzLCBkaXNrcykpDQo+ICsJCQkJdW5t
YXAtPmFkZHJbaisrXSA9IGRtYV9tYXBfcGFnZShkZXZpY2UtPmRldiwNCj4gKwkJCQkJCQlRKGJs
b2NrcywgZGlza3MpLA0KPiArCQkJCQkJCW9mZnNldCwgbGVuLA0KPiArCQkJCQkJCURNQV9CSURJ
UkVDVElPTkFMKTsNCj4gKwkJCWVsc2Ugew0KPiArCQkJCXVubWFwLT5hZGRyW2orK10gPSAwOw0K
PiArCQkJCWRtYV9mbGFncyB8PSBETUFfUFJFUF9QUV9ESVNBQkxFX1E7DQo+ICsJCQl9DQo+ICAN
Cj4gLQkJdHggPSBkb19hc3luY19nZW5fc3luZHJvbWUoY2hhbiwgY29lZnMsIGosIHVubWFwLCBk
bWFfZmxhZ3MsIHN1Ym1pdCk7DQo+IC0JCWRtYWVuZ2luZV91bm1hcF9wdXQodW5tYXApOw0KPiAt
CQlyZXR1cm4gdHg7DQo+ICsJCQl0eCA9IGRvX2FzeW5jX2dlbl9zeW5kcm9tZShjaGFuLCBjb2Vm
cywgaiwgdW5tYXAsDQo+ICsJCQkJCQkgICBkbWFfZmxhZ3MsIHN1Ym1pdCk7DQo+ICsJCQlyZXR1
cm4gdHg7DQo+ICsJCX0NCj4gIAl9DQo+ICANCj4gLQlkbWFlbmdpbmVfdW5tYXBfcHV0KHVubWFw
KTsNCj4gLQ0KPiAgCS8qIHJ1biB0aGUgcHEgc3luY2hyb25vdXNseSAqLw0KPiAgCXByX2RlYnVn
KCIlczogKHN5bmMpIGRpc2tzOiAlZCBsZW46ICV6dVxuIiwgX19mdW5jX18sIGRpc2tzLCBsZW4p
Ow0KPiAgDQo+IEBAIC0yOTMsMTAgKzI5OCw3IEBAIGFzeW5jX3N5bmRyb21lX3ZhbChzdHJ1Y3Qg
cGFnZSAqKmJsb2NrcywgdW5zaWduZWQgDQo+IGludCBvZmZzZXQsIGludCBkaXNrcywNCj4gIA0K
PiAgCUJVR19PTihkaXNrcyA8IDQpOw0KPiAgDQo+IC0JaWYgKGRldmljZSkNCj4gLQkJdW5tYXAg
PSBkbWFlbmdpbmVfZ2V0X3VubWFwX2RhdGEoZGV2aWNlLT5kZXYsIGRpc2tzLCBHRlBfTk9JTyk7
DQo+IC0NCj4gLQlpZiAodW5tYXAgJiYgZGlza3MgPD0gZG1hX21heHBxKGRldmljZSwgMCkgJiYN
Cj4gKwlpZiAoZGV2aWNlICYmIGRpc2tzIDw9IGRtYV9tYXhwcShkZXZpY2UsIDApICYmDQo+ICAJ
ICAgIGlzX2RtYV9wcV9hbGlnbmVkKGRldmljZSwgb2Zmc2V0LCAwLCBsZW4pKSB7DQo+ICAJCXN0
cnVjdCBkZXZpY2UgKmRldiA9IGRldmljZS0+ZGV2Ow0KPiAgCQlkbWFfYWRkcl90IHBxWzJdOw0K
PiBAQCAtMzA1LDU4ICszMDcsNjMgQEAgYXN5bmNfc3luZHJvbWVfdmFsKHN0cnVjdCBwYWdlICoq
YmxvY2tzLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCBpbnQgZGlza3MsDQo+ICAJCXByX2RlYnVnKCIl
czogKGFzeW5jKSBkaXNrczogJWQgbGVuOiAlenVcbiIsDQo+ICAJCQkgX19mdW5jX18sIGRpc2tz
LCBsZW4pOw0KPiAgDQo+IC0JCXVubWFwLT5sZW4gPSBsZW47DQo+IC0JCWZvciAoaSA9IDA7IGkg
PCBkaXNrcy0yOyBpKyspDQo+IC0JCQlpZiAobGlrZWx5KGJsb2Nrc1tpXSkpIHsNCj4gLQkJCQl1
bm1hcC0+YWRkcltqXSA9IGRtYV9tYXBfcGFnZShkZXYsIGJsb2Nrc1tpXSwNCj4gLQkJCQkJCQkg
ICAgICBvZmZzZXQsIGxlbiwNCj4gKwkJdW5tYXAgPSBkbWFlbmdpbmVfZ2V0X3VubWFwX2RhdGEo
ZGV2aWNlLT5kZXYsIGRpc2tzLCBHRlBfTk9JTyk7DQo+ICsJCWlmICh1bm1hcCkgew0KPiArCQkJ
dW5tYXAtPmxlbiA9IGxlbjsNCj4gKwkJCWZvciAoaSA9IDA7IGkgPCBkaXNrcy0yOyBpKyspDQo+
ICsJCQkJaWYgKGxpa2VseShibG9ja3NbaV0pKSB7DQo+ICsJCQkJCXVubWFwLT5hZGRyW2pdID0g
ZG1hX21hcF9wYWdlKGRldiwNCj4gKwkJCQkJCQkgICAgICBibG9ja3NbaV0sDQo+ICsJCQkJCQkJ
ICAgICAgb2Zmc2V0LA0KPiArCQkJCQkJCSAgICAgIGxlbiwNCj4gIAkJCQkJCQkgICAgICBETUFf
VE9fREVWSUNFKTsNCj4gLQkJCQljb2Vmc1tqXSA9IHJhaWQ2X2dmZXhwW2ldOw0KPiArCQkJCQlj
b2Vmc1tqXSA9IHJhaWQ2X2dmZXhwW2ldOw0KPiArCQkJCQl1bm1hcC0+dG9fY250Kys7DQo+ICsJ
CQkJCXNyY19jbnQrKzsNCj4gKwkJCQkJaisrOw0KPiArCQkJCX0NCj4gKw0KPiArCQkJaWYgKCFQ
KGJsb2NrcywgZGlza3MpKSB7DQo+ICsJCQkJcHFbMF0gPSAwOw0KPiArCQkJCWRtYV9mbGFncyB8
PSBETUFfUFJFUF9QUV9ESVNBQkxFX1A7DQo+ICsJCQl9IGVsc2Ugew0KPiArCQkJCXBxWzBdID0g
ZG1hX21hcF9wYWdlKGRldiwgUChibG9ja3MsIGRpc2tzKSwNCj4gKwkJCQkJCSAgICAgb2Zmc2V0
LCBsZW4sDQo+ICsJCQkJCQkgICAgIERNQV9UT19ERVZJQ0UpOw0KPiArCQkJCXVubWFwLT5hZGRy
W2orK10gPSBwcVswXTsNCj4gKwkJCQl1bm1hcC0+dG9fY250Kys7DQo+ICsJCQl9DQo+ICsJCQlp
ZiAoIVEoYmxvY2tzLCBkaXNrcykpIHsNCj4gKwkJCQlwcVsxXSA9IDA7DQo+ICsJCQkJZG1hX2Zs
YWdzIHw9IERNQV9QUkVQX1BRX0RJU0FCTEVfUTsNCj4gKwkJCX0gZWxzZSB7DQo+ICsJCQkJcHFb
MV0gPSBkbWFfbWFwX3BhZ2UoZGV2LCBRKGJsb2NrcywgZGlza3MpLA0KPiArCQkJCQkJICAgICBv
ZmZzZXQsIGxlbiwNCj4gKwkJCQkJCSAgICAgRE1BX1RPX0RFVklDRSk7DQo+ICsJCQkJdW5tYXAt
PmFkZHJbaisrXSA9IHBxWzFdOw0KPiAgCQkJCXVubWFwLT50b19jbnQrKzsNCj4gLQkJCQlzcmNf
Y250Kys7DQo+IC0JCQkJaisrOw0KPiAgCQkJfQ0KPiAgDQo+IC0JCWlmICghUChibG9ja3MsIGRp
c2tzKSkgew0KPiAtCQkJcHFbMF0gPSAwOw0KPiAtCQkJZG1hX2ZsYWdzIHw9IERNQV9QUkVQX1BR
X0RJU0FCTEVfUDsNCj4gLQkJfSBlbHNlIHsNCj4gLQkJCXBxWzBdID0gZG1hX21hcF9wYWdlKGRl
diwgUChibG9ja3MsIGRpc2tzKSwNCj4gLQkJCQkJICAgICBvZmZzZXQsIGxlbiwNCj4gLQkJCQkJ
ICAgICBETUFfVE9fREVWSUNFKTsNCj4gLQkJCXVubWFwLT5hZGRyW2orK10gPSBwcVswXTsNCj4g
LQkJCXVubWFwLT50b19jbnQrKzsNCj4gLQkJfQ0KPiAtCQlpZiAoIVEoYmxvY2tzLCBkaXNrcykp
IHsNCj4gLQkJCXBxWzFdID0gMDsNCj4gLQkJCWRtYV9mbGFncyB8PSBETUFfUFJFUF9QUV9ESVNB
QkxFX1E7DQo+IC0JCX0gZWxzZSB7DQo+IC0JCQlwcVsxXSA9IGRtYV9tYXBfcGFnZShkZXYsIFEo
YmxvY2tzLCBkaXNrcyksDQo+IC0JCQkJCSAgICAgb2Zmc2V0LCBsZW4sDQo+IC0JCQkJCSAgICAg
RE1BX1RPX0RFVklDRSk7DQo+IC0JCQl1bm1hcC0+YWRkcltqKytdID0gcHFbMV07DQo+IC0JCQl1
bm1hcC0+dG9fY250Kys7DQo+IC0JCX0NCj4gLQ0KPiAtCQlpZiAoc3VibWl0LT5mbGFncyAmIEFT
WU5DX1RYX0ZFTkNFKQ0KPiAtCQkJZG1hX2ZsYWdzIHw9IERNQV9QUkVQX0ZFTkNFOw0KPiAtCQlm
b3IgKDs7KSB7DQo+IC0JCQl0eCA9IGRldmljZS0+ZGV2aWNlX3ByZXBfZG1hX3BxX3ZhbChjaGFu
LCBwcSwNCj4gLQkJCQkJCQkgICAgdW5tYXAtPmFkZHIsDQo+IC0JCQkJCQkJICAgIHNyY19jbnQs
DQo+IC0JCQkJCQkJICAgIGNvZWZzLA0KPiAtCQkJCQkJCSAgICBsZW4sIHBxcmVzLA0KPiAtCQkJ
CQkJCSAgICBkbWFfZmxhZ3MpOw0KPiAtCQkJaWYgKGxpa2VseSh0eCkpDQo+IC0JCQkJYnJlYWs7
DQo+IC0JCQlhc3luY190eF9xdWllc2NlKCZzdWJtaXQtPmRlcGVuZF90eCk7DQo+IC0JCQlkbWFf
YXN5bmNfaXNzdWVfcGVuZGluZyhjaGFuKTsNCj4gLQkJfQ0KPiArCQkJaWYgKHN1Ym1pdC0+Zmxh
Z3MgJiBBU1lOQ19UWF9GRU5DRSkNCj4gKwkJCQlkbWFfZmxhZ3MgfD0gRE1BX1BSRVBfRkVOQ0U7
DQo+ICsJCQlmb3IgKDs7KSB7DQo+ICsJCQkJdHggPSBkZXZpY2UtPmRldmljZV9wcmVwX2RtYV9w
cV92YWwoY2hhbiwgcHEsDQo+ICsJCQkJCQkJCSAgICB1bm1hcC0+YWRkciwNCj4gKwkJCQkJCQkJ
ICAgIHNyY19jbnQsDQo+ICsJCQkJCQkJCSAgICBjb2VmcywNCj4gKwkJCQkJCQkJICAgIGxlbiwg
cHFyZXMsDQo+ICsJCQkJCQkJCSAgICBkbWFfZmxhZ3MpOw0KPiArCQkJCWlmIChsaWtlbHkodHgp
KQ0KPiArCQkJCQlicmVhazsNCj4gKwkJCQlhc3luY190eF9xdWllc2NlKCZzdWJtaXQtPmRlcGVu
ZF90eCk7DQo+ICsJCQkJZG1hX2FzeW5jX2lzc3VlX3BlbmRpbmcoY2hhbik7DQo+ICsJCQl9DQo+
ICANCj4gLQkJZG1hX3NldF91bm1hcCh0eCwgdW5tYXApOw0KPiAtCQlhc3luY190eF9zdWJtaXQo
Y2hhbiwgdHgsIHN1Ym1pdCk7DQo+ICsJCQlkbWFfc2V0X3VubWFwKHR4LCB1bm1hcCk7DQo+ICsJ
CQlhc3luY190eF9zdWJtaXQoY2hhbiwgdHgsIHN1Ym1pdCk7DQo+ICANCj4gLQkJcmV0dXJuIHR4
Ow0KPiArCQkJcmV0dXJuIHR4Ow0KPiArCQl9DQo+ICAJfSBlbHNlIHsNCj4gIAkJc3RydWN0IHBh
Z2UgKnBfc3JjID0gUChibG9ja3MsIGRpc2tzKTsNCj4gIAkJc3RydWN0IHBhZ2UgKnFfc3JjID0g
UShibG9ja3MsIGRpc2tzKTsgQEAgLTQxMSw5ICs0MTgsOSBAQCANCj4gYXN5bmNfc3luZHJvbWVf
dmFsKHN0cnVjdCBwYWdlICoqYmxvY2tzLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCBpbnQgZGlza3Ms
DQo+ICAJCXN1Ym1pdC0+Y2JfcGFyYW0gPSBjYl9wYXJhbV9vcmlnOw0KPiAgCQlzdWJtaXQtPmZs
YWdzID0gZmxhZ3Nfb3JpZzsNCj4gIAkJYXN5bmNfdHhfc3luY19lcGlsb2coc3VibWl0KTsNCj4g
LQ0KPiAtCQlyZXR1cm4gTlVMTDsNCj4gIAl9DQo+ICsNCj4gKwlyZXR1cm4gTlVMTDsNCj4gIH0N
Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGFzeW5jX3N5bmRyb21lX3ZhbCk7DQo+ICANCj4gZGlmZiAt
LWdpdCBhL2NyeXB0by9hc3luY190eC9hc3luY19yYWlkNl9yZWNvdi5jIA0KPiBiL2NyeXB0by9h
c3luY190eC9hc3luY19yYWlkNl9yZWNvdi5jDQo+IGluZGV4IDkzNGE4NDkuLmM1NWQ4ZjEgMTAw
NjQ0DQo+IC0tLSBhL2NyeXB0by9hc3luY190eC9hc3luY19yYWlkNl9yZWNvdi5jDQo+ICsrKyBi
L2NyeXB0by9hc3luY190eC9hc3luY19yYWlkNl9yZWNvdi5jDQo+IEBAIC00MCwxMCArNDAsNyBA
QCBhc3luY19zdW1fcHJvZHVjdChzdHJ1Y3QgcGFnZSAqZGVzdCwgc3RydWN0IHBhZ2UgKipzcmNz
LCB1bnNpZ25lZCBjaGFyICpjb2VmLA0KPiAgCXU4IGF4LCBieDsNCj4gIAl1OCAqYSwgKmIsICpj
Ow0KPiAgDQo+IC0JaWYgKGRtYSkNCj4gLQkJdW5tYXAgPSBkbWFlbmdpbmVfZ2V0X3VubWFwX2Rh
dGEoZG1hLT5kZXYsIDMsIEdGUF9OT0lPKTsNCj4gLQ0KPiAtCWlmICh1bm1hcCkgew0KPiArCWlm
IChkbWEpIHsNCj4gIAkJc3RydWN0IGRldmljZSAqZGV2ID0gZG1hLT5kZXY7DQo+ICAJCWRtYV9h
ZGRyX3QgcHFbMl07DQo+ICAJCXN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqdHg7IEBA
IC01MSwyOSArNDgsMzUgQEAgDQo+IGFzeW5jX3N1bV9wcm9kdWN0KHN0cnVjdCBwYWdlICpkZXN0
LCBzdHJ1Y3QgcGFnZSAqKnNyY3MsIHVuc2lnbmVkIGNoYXIgDQo+ICpjb2VmLA0KPiAgDQo+ICAJ
CWlmIChzdWJtaXQtPmZsYWdzICYgQVNZTkNfVFhfRkVOQ0UpDQo+ICAJCQlkbWFfZmxhZ3MgfD0g
RE1BX1BSRVBfRkVOQ0U7DQo+IC0JCXVubWFwLT5hZGRyWzBdID0gZG1hX21hcF9wYWdlKGRldiwg
c3Jjc1swXSwgMCwgbGVuLCBETUFfVE9fREVWSUNFKTsNCj4gLQkJdW5tYXAtPmFkZHJbMV0gPSBk
bWFfbWFwX3BhZ2UoZGV2LCBzcmNzWzFdLCAwLCBsZW4sIERNQV9UT19ERVZJQ0UpOw0KPiAtCQl1
bm1hcC0+dG9fY250ID0gMjsNCj4gLQ0KPiAtCQl1bm1hcC0+YWRkclsyXSA9IGRtYV9tYXBfcGFn
ZShkZXYsIGRlc3QsIDAsIGxlbiwgRE1BX0JJRElSRUNUSU9OQUwpOw0KPiAtCQl1bm1hcC0+Ymlk
aV9jbnQgPSAxOw0KPiAtCQkvKiBlbmdpbmUgb25seSBsb29rcyBhdCBRLCBidXQgZXhwZWN0cyBp
dCB0byBmb2xsb3cgUCAqLw0KPiAtCQlwcVsxXSA9IHVubWFwLT5hZGRyWzJdOw0KPiAtDQo+IC0J
CXVubWFwLT5sZW4gPSBsZW47DQo+IC0JCXR4ID0gZG1hLT5kZXZpY2VfcHJlcF9kbWFfcHEoY2hh
biwgcHEsIHVubWFwLT5hZGRyLCAyLCBjb2VmLA0KPiAtCQkJCQkgICAgIGxlbiwgZG1hX2ZsYWdz
KTsNCj4gLQkJaWYgKHR4KSB7DQo+IC0JCQlkbWFfc2V0X3VubWFwKHR4LCB1bm1hcCk7DQo+IC0J
CQlhc3luY190eF9zdWJtaXQoY2hhbiwgdHgsIHN1Ym1pdCk7DQo+ICsNCj4gKwkJdW5tYXAgPSBk
bWFlbmdpbmVfZ2V0X3VubWFwX2RhdGEoZG1hLT5kZXYsIDMsIEdGUF9OT0lPKTsNCj4gKwkJaWYg
KHVubWFwKSB7DQo+ICsJCQl1bm1hcC0+YWRkclswXSA9IGRtYV9tYXBfcGFnZShkZXYsIHNyY3Nb
MF0sIDAsIGxlbiwNCj4gKwkJCQkJCSAgICAgIERNQV9UT19ERVZJQ0UpOw0KPiArCQkJdW5tYXAt
PmFkZHJbMV0gPSBkbWFfbWFwX3BhZ2UoZGV2LCBzcmNzWzFdLCAwLCBsZW4sDQo+ICsJCQkJCQkg
ICAgICBETUFfVE9fREVWSUNFKTsNCj4gKwkJCXVubWFwLT50b19jbnQgPSAyOw0KPiArDQo+ICsJ
CQl1bm1hcC0+YWRkclsyXSA9IGRtYV9tYXBfcGFnZShkZXYsIGRlc3QsIDAsIGxlbiwNCj4gKwkJ
CQkJCSAgICAgIERNQV9CSURJUkVDVElPTkFMKTsNCj4gKwkJCXVubWFwLT5iaWRpX2NudCA9IDE7
DQo+ICsJCQkvKiBlbmdpbmUgb25seSBsb29rcyBhdCBRLCBidXQgZXhwZWN0cyBpdCB0byBmb2xs
b3cgUCAqLw0KPiArCQkJcHFbMV0gPSB1bm1hcC0+YWRkclsyXTsNCj4gKw0KPiArCQkJdW5tYXAt
PmxlbiA9IGxlbjsNCj4gKwkJCXR4ID0gZG1hLT5kZXZpY2VfcHJlcF9kbWFfcHEoY2hhbiwgcHEs
IHVubWFwLT5hZGRyLCAyLA0KPiArCQkJCQkJICAgICBjb2VmLCBsZW4sIGRtYV9mbGFncyk7DQo+
ICsJCQlpZiAodHgpIHsNCj4gKwkJCQlkbWFfc2V0X3VubWFwKHR4LCB1bm1hcCk7DQo+ICsJCQkJ
YXN5bmNfdHhfc3VibWl0KGNoYW4sIHR4LCBzdWJtaXQpOw0KPiArCQkJCXJldHVybiB0eDsNCj4g
KwkJCX0NCj4gKw0KPiArCQkJLyogY291bGQgbm90IGdldCBhIGRlc2NyaXB0b3IsIHVubWFwIGFu
ZCBmYWxsIHRocm91Z2ggdG8NCj4gKwkJCSAqIHRoZSBzeW5jaHJvbm91cyBwYXRoDQo+ICsJCQkg
Ki8NCj4gIAkJCWRtYWVuZ2luZV91bm1hcF9wdXQodW5tYXApOw0KPiAtCQkJcmV0dXJuIHR4Ow0K
PiAgCQl9DQo+IC0NCj4gLQkJLyogY291bGQgbm90IGdldCBhIGRlc2NyaXB0b3IsIHVubWFwIGFu
ZCBmYWxsIHRocm91Z2ggdG8NCj4gLQkJICogdGhlIHN5bmNocm9ub3VzIHBhdGgNCj4gLQkJICov
DQo+IC0JCWRtYWVuZ2luZV91bm1hcF9wdXQodW5tYXApOw0KPiAgCX0NCj4gIA0KPiAgCS8qIHJ1
biB0aGUgb3BlcmF0aW9uIHN5bmNocm9ub3VzbHkgKi8gQEAgLTEwNCwxMCArMTA3LDcgQEAgDQo+
IGFzeW5jX211bHQoc3RydWN0IHBhZ2UgKmRlc3QsIHN0cnVjdCBwYWdlICpzcmMsIHU4IGNvZWYs
IHNpemVfdCBsZW4sDQo+ICAJY29uc3QgdTggKnFtdWw7IC8qIFEgbXVsdGlwbGllciB0YWJsZSAq
Lw0KPiAgCXU4ICpkLCAqczsNCj4gIA0KPiAtCWlmIChkbWEpDQo+IC0JCXVubWFwID0gZG1hZW5n
aW5lX2dldF91bm1hcF9kYXRhKGRtYS0+ZGV2LCAzLCBHRlBfTk9JTyk7DQo+IC0NCj4gLQlpZiAo
dW5tYXApIHsNCj4gKwlpZiAoZG1hKSB7DQo+ICAJCWRtYV9hZGRyX3QgZG1hX2Rlc3RbMl07DQo+
ICAJCXN0cnVjdCBkZXZpY2UgKmRldiA9IGRtYS0+ZGV2Ow0KPiAgCQlzdHJ1Y3QgZG1hX2FzeW5j
X3R4X2Rlc2NyaXB0b3IgKnR4OyBAQCAtMTE1LDMxICsxMTUsMzcgQEAgDQo+IGFzeW5jX211bHQo
c3RydWN0IHBhZ2UgKmRlc3QsIHN0cnVjdCBwYWdlICpzcmMsIHU4IGNvZWYsIHNpemVfdCBsZW4s
DQo+ICANCj4gIAkJaWYgKHN1Ym1pdC0+ZmxhZ3MgJiBBU1lOQ19UWF9GRU5DRSkNCj4gIAkJCWRt
YV9mbGFncyB8PSBETUFfUFJFUF9GRU5DRTsNCj4gLQkJdW5tYXAtPmFkZHJbMF0gPSBkbWFfbWFw
X3BhZ2UoZGV2LCBzcmMsIDAsIGxlbiwgRE1BX1RPX0RFVklDRSk7DQo+IC0JCXVubWFwLT50b19j
bnQrKzsNCj4gLQkJdW5tYXAtPmFkZHJbMV0gPSBkbWFfbWFwX3BhZ2UoZGV2LCBkZXN0LCAwLCBs
ZW4sIERNQV9CSURJUkVDVElPTkFMKTsNCj4gLQkJZG1hX2Rlc3RbMV0gPSB1bm1hcC0+YWRkclsx
XTsNCj4gLQkJdW5tYXAtPmJpZGlfY250Kys7DQo+IC0JCXVubWFwLT5sZW4gPSBsZW47DQo+IC0N
Cj4gLQkJLyogdGhpcyBsb29rcyBmdW5ueSwgYnV0IHRoZSBlbmdpbmUgbG9va3MgZm9yIFEgYXQN
Cj4gLQkJICogZG1hX2Rlc3RbMV0gYW5kIGlnbm9yZXMgZG1hX2Rlc3RbMF0gYXMgYSBkZXN0DQo+
IC0JCSAqIGR1ZSB0byBETUFfUFJFUF9QUV9ESVNBQkxFX1ANCj4gLQkJICovDQo+IC0JCXR4ID0g
ZG1hLT5kZXZpY2VfcHJlcF9kbWFfcHEoY2hhbiwgZG1hX2Rlc3QsIHVubWFwLT5hZGRyLA0KPiAt
CQkJCQkgICAgIDEsICZjb2VmLCBsZW4sIGRtYV9mbGFncyk7DQo+ICANCj4gLQkJaWYgKHR4KSB7
DQo+IC0JCQlkbWFfc2V0X3VubWFwKHR4LCB1bm1hcCk7DQo+ICsJCXVubWFwID0gZG1hZW5naW5l
X2dldF91bm1hcF9kYXRhKGRtYS0+ZGV2LCAzLCBHRlBfTk9JTyk7DQo+ICsJCWlmICh1bm1hcCkg
ew0KPiArCQkJdW5tYXAtPmFkZHJbMF0gPSBkbWFfbWFwX3BhZ2UoZGV2LCBzcmMsIDAsIGxlbiwN
Cj4gKwkJCQkJCSAgICAgIERNQV9UT19ERVZJQ0UpOw0KPiArCQkJdW5tYXAtPnRvX2NudCsrOw0K
PiArCQkJdW5tYXAtPmFkZHJbMV0gPSBkbWFfbWFwX3BhZ2UoZGV2LCBkZXN0LCAwLCBsZW4sDQo+
ICsJCQkJCQkgICAgICBETUFfQklESVJFQ1RJT05BTCk7DQo+ICsJCQlkbWFfZGVzdFsxXSA9IHVu
bWFwLT5hZGRyWzFdOw0KPiArCQkJdW5tYXAtPmJpZGlfY250Kys7DQo+ICsJCQl1bm1hcC0+bGVu
ID0gbGVuOw0KPiArDQo+ICsJCQkvKiB0aGlzIGxvb2tzIGZ1bm55LCBidXQgdGhlIGVuZ2luZSBs
b29rcyBmb3IgUSBhdA0KPiArCQkJICogZG1hX2Rlc3RbMV0gYW5kIGlnbm9yZXMgZG1hX2Rlc3Rb
MF0gYXMgYSBkZXN0DQo+ICsJCQkgKiBkdWUgdG8gRE1BX1BSRVBfUFFfRElTQUJMRV9QDQo+ICsJ
CQkgKi8NCj4gKwkJCXR4ID0gZG1hLT5kZXZpY2VfcHJlcF9kbWFfcHEoY2hhbiwgZG1hX2Rlc3Qs
DQo+ICsJCQkJCQkgICAgIHVubWFwLT5hZGRyLCAxLCAmY29lZiwNCj4gKwkJCQkJCSAgICAgbGVu
LCBkbWFfZmxhZ3MpOw0KPiArDQo+ICsJCQlpZiAodHgpIHsNCj4gKwkJCQlkbWFfc2V0X3VubWFw
KHR4LCB1bm1hcCk7DQo+ICsJCQkJYXN5bmNfdHhfc3VibWl0KGNoYW4sIHR4LCBzdWJtaXQpOw0K
PiArCQkJCXJldHVybiB0eDsNCj4gKwkJCX0NCj4gKw0KPiArCQkJLyogY291bGQgbm90IGdldCBh
IGRlc2NyaXB0b3IsIHVubWFwIGFuZCBmYWxsIHRocm91Z2ggdG8NCj4gKwkJCSAqIHRoZSBzeW5j
aHJvbm91cyBwYXRoDQo+ICsJCQkgKi8NCj4gIAkJCWRtYWVuZ2luZV91bm1hcF9wdXQodW5tYXAp
Ow0KPiAtCQkJYXN5bmNfdHhfc3VibWl0KGNoYW4sIHR4LCBzdWJtaXQpOw0KPiAtCQkJcmV0dXJu
IHR4Ow0KPiAgCQl9DQo+IC0NCj4gLQkJLyogY291bGQgbm90IGdldCBhIGRlc2NyaXB0b3IsIHVu
bWFwIGFuZCBmYWxsIHRocm91Z2ggdG8NCj4gLQkJICogdGhlIHN5bmNocm9ub3VzIHBhdGgNCj4g
LQkJICovDQo+IC0JCWRtYWVuZ2luZV91bm1hcF9wdXQodW5tYXApOw0KPiAgCX0NCj4gIA0KPiAg
CS8qIG5vIGNoYW5uZWwgYXZhaWxhYmxlLCBvciBmYWlsZWQgdG8gYWxsb2NhdGUgYSBkZXNjcmlw
dG9yLCBzbyBkaWZmIA0KPiAtLWdpdCBhL2NyeXB0by9hc3luY190eC9hc3luY194b3IuYyBiL2Ny
eXB0by9hc3luY190eC9hc3luY194b3IuYyANCj4gaW5kZXggM2M1NjJmNS4uMDE5ZTQ2OSAxMDA2
NDQNCj4gLS0tIGEvY3J5cHRvL2FzeW5jX3R4L2FzeW5jX3hvci5jDQo+ICsrKyBiL2NyeXB0by9h
c3luY190eC9hc3luY194b3IuYw0KPiBAQCAtMTgyLDU1ICsxODIsNTcgQEAgYXN5bmNfeG9yKHN0
cnVjdCBwYWdlICpkZXN0LCBzdHJ1Y3QgcGFnZSANCj4gKipzcmNfbGlzdCwgdW5zaWduZWQgaW50
IG9mZnNldCwNCj4gIA0KPiAgCUJVR19PTihzcmNfY250IDw9IDEpOw0KPiAgDQo+IC0JaWYgKGRl
dmljZSkNCj4gLQkJdW5tYXAgPSBkbWFlbmdpbmVfZ2V0X3VubWFwX2RhdGEoZGV2aWNlLT5kZXYs
IHNyY19jbnQrMSwgR0ZQX05PSU8pOw0KPiAtDQo+IC0JaWYgKHVubWFwICYmIGlzX2RtYV94b3Jf
YWxpZ25lZChkZXZpY2UsIG9mZnNldCwgMCwgbGVuKSkgew0KPiArCWlmIChkZXZpY2UgJiYgaXNf
ZG1hX3hvcl9hbGlnbmVkKGRldmljZSwgb2Zmc2V0LCAwLCBsZW4pKSB7DQo+ICAJCXN0cnVjdCBk
bWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqdHg7DQo+ICAJCWludCBpLCBqOw0KPiAgDQo+ICAJCS8q
IHJ1biB0aGUgeG9yIGFzeW5jaHJvbm91c2x5ICovDQo+ICAJCXByX2RlYnVnKCIlcyAoYXN5bmMp
OiBsZW46ICV6dVxuIiwgX19mdW5jX18sIGxlbik7DQo+ICANCj4gLQkJdW5tYXAtPmxlbiA9IGxl
bjsNCj4gLQkJZm9yIChpID0gMCwgaiA9IDA7IGkgPCBzcmNfY250OyBpKyspIHsNCj4gLQkJCWlm
ICghc3JjX2xpc3RbaV0pDQo+IC0JCQkJY29udGludWU7DQo+IC0JCQl1bm1hcC0+dG9fY250Kys7
DQo+IC0JCQl1bm1hcC0+YWRkcltqKytdID0gZG1hX21hcF9wYWdlKGRldmljZS0+ZGV2LCBzcmNf
bGlzdFtpXSwNCj4gLQkJCQkJCQlvZmZzZXQsIGxlbiwgRE1BX1RPX0RFVklDRSk7DQo+IC0JCX0N
Cj4gKwkJdW5tYXAgPSBkbWFlbmdpbmVfZ2V0X3VubWFwX2RhdGEoZGV2aWNlLT5kZXYsIHNyY19j
bnQgKyAxLA0KPiArCQkJCQkJIEdGUF9OT0lPKTsNCj4gKwkJaWYgKHVubWFwKSB7DQo+ICsJCQl1
bm1hcC0+bGVuID0gbGVuOw0KPiArCQkJZm9yIChpID0gMCwgaiA9IDA7IGkgPCBzcmNfY250OyBp
KyspIHsNCj4gKwkJCQlpZiAoIXNyY19saXN0W2ldKQ0KPiArCQkJCQljb250aW51ZTsNCj4gKwkJ
CQl1bm1hcC0+dG9fY250Kys7DQo+ICsJCQkJdW5tYXAtPmFkZHJbaisrXSA9IGRtYV9tYXBfcGFn
ZShkZXZpY2UtPmRldiwNCj4gKwkJCQkJCQkJc3JjX2xpc3RbaV0sDQo+ICsJCQkJCQkJCW9mZnNl
dCwgbGVuLA0KPiArCQkJCQkJCQlETUFfVE9fREVWSUNFKTsNCj4gKwkJCX0NCj4gIA0KPiAtCQkv
KiBtYXAgaXQgYmlkaXJlY3Rpb25hbCBhcyBpdCBtYXkgYmUgcmUtdXNlZCBhcyBhIHNvdXJjZSAq
Lw0KPiAtCQl1bm1hcC0+YWRkcltqXSA9IGRtYV9tYXBfcGFnZShkZXZpY2UtPmRldiwgZGVzdCwg
b2Zmc2V0LCBsZW4sDQo+IC0JCQkJCSAgICAgIERNQV9CSURJUkVDVElPTkFMKTsNCj4gLQkJdW5t
YXAtPmJpZGlfY250ID0gMTsNCj4gLQ0KPiAtCQl0eCA9IGRvX2FzeW5jX3hvcihjaGFuLCB1bm1h
cCwgc3VibWl0KTsNCj4gLQkJZG1hZW5naW5lX3VubWFwX3B1dCh1bm1hcCk7DQo+IC0JCXJldHVy
biB0eDsNCj4gLQl9IGVsc2Ugew0KPiAtCQlkbWFlbmdpbmVfdW5tYXBfcHV0KHVubWFwKTsNCj4g
LQkJLyogcnVuIHRoZSB4b3Igc3luY2hyb25vdXNseSAqLw0KPiAtCQlwcl9kZWJ1ZygiJXMgKHN5
bmMpOiBsZW46ICV6dVxuIiwgX19mdW5jX18sIGxlbik7DQo+IC0JCVdBUk5fT05DRShjaGFuLCAi
JXM6IG5vIHNwYWNlIGZvciBkbWEgYWRkcmVzcyBjb252ZXJzaW9uXG4iLA0KPiAtCQkJICBfX2Z1
bmNfXyk7DQo+IC0NCj4gLQkJLyogaW4gdGhlIHN5bmMgY2FzZSB0aGUgZGVzdCBpcyBhbiBpbXBs
aWVkIHNvdXJjZQ0KPiAtCQkgKiAoYXNzdW1lcyB0aGUgZGVzdCBpcyB0aGUgZmlyc3Qgc291cmNl
KQ0KPiAtCQkgKi8NCj4gLQkJaWYgKHN1Ym1pdC0+ZmxhZ3MgJiBBU1lOQ19UWF9YT1JfRFJPUF9E
U1QpIHsNCj4gLQkJCXNyY19jbnQtLTsNCj4gLQkJCXNyY19saXN0Kys7DQo+ICsJCQkvKiBtYXAg
aXQgYmlkaXJlY3Rpb25hbCBhcyBpdCBtYXkgYmUgcmUtdXNlZA0KPiArCQkJICAgYXMgYSBzb3Vy
Y2UgKi8NCj4gKwkJCXVubWFwLT5hZGRyW2pdID0gZG1hX21hcF9wYWdlKGRldmljZS0+ZGV2LCBk
ZXN0LCBvZmZzZXQsDQo+ICsJCQkJCQkgICAgICBsZW4sIERNQV9CSURJUkVDVElPTkFMKTsNCj4g
KwkJCXVubWFwLT5iaWRpX2NudCA9IDE7DQo+ICsNCj4gKwkJCXR4ID0gZG9fYXN5bmNfeG9yKGNo
YW4sIHVubWFwLCBzdWJtaXQpOw0KPiArCQkJcmV0dXJuIHR4Ow0KPiAgCQl9DQo+ICsJfQ0KPiAg
DQo+IC0JCS8qIHdhaXQgZm9yIGFueSBwcmVyZXF1aXNpdGUgb3BlcmF0aW9ucyAqLw0KPiAtCQlh
c3luY190eF9xdWllc2NlKCZzdWJtaXQtPmRlcGVuZF90eCk7DQo+ICsJLyogcnVuIHRoZSB4b3Ig
c3luY2hyb25vdXNseSAqLw0KPiArCXByX2RlYnVnKCIlcyAoc3luYyk6IGxlbjogJXp1XG4iLCBf
X2Z1bmNfXywgbGVuKTsNCj4gKwlXQVJOX09OQ0UoY2hhbiwgIiVzOiBubyBzcGFjZSBmb3IgZG1h
IGFkZHJlc3MgY29udmVyc2lvblxuIiwNCj4gKwkJICBfX2Z1bmNfXyk7DQo+ICsNCj4gKwkvKiBp
biB0aGUgc3luYyBjYXNlIHRoZSBkZXN0IGlzIGFuIGltcGxpZWQgc291cmNlDQo+ICsJICogKGFz
c3VtZXMgdGhlIGRlc3QgaXMgdGhlIGZpcnN0IHNvdXJjZSkNCj4gKwkgKi8NCj4gKwlpZiAoc3Vi
bWl0LT5mbGFncyAmIEFTWU5DX1RYX1hPUl9EUk9QX0RTVCkgew0KPiArCQlzcmNfY250LS07DQo+
ICsJCXNyY19saXN0Kys7DQo+ICsJfQ0KPiAgDQo+IC0JCWRvX3N5bmNfeG9yKGRlc3QsIHNyY19s
aXN0LCBvZmZzZXQsIHNyY19jbnQsIGxlbiwgc3VibWl0KTsNCj4gKwkvKiB3YWl0IGZvciBhbnkg
cHJlcmVxdWlzaXRlIG9wZXJhdGlvbnMgKi8NCj4gKwlhc3luY190eF9xdWllc2NlKCZzdWJtaXQt
PmRlcGVuZF90eCk7DQo+ICANCj4gLQkJcmV0dXJuIE5VTEw7DQo+IC0JfQ0KPiArCWRvX3N5bmNf
eG9yKGRlc3QsIHNyY19saXN0LCBvZmZzZXQsIHNyY19jbnQsIGxlbiwgc3VibWl0KTsNCj4gKw0K
PiArCXJldHVybiBOVUxMOw0KPiAgfQ0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoYXN5bmNfeG9yKTsN
Cj4gIA0KPiBAQCAtMjc1LDEzICsyNzcsMTEgQEAgYXN5bmNfeG9yX3ZhbChzdHJ1Y3QgcGFnZSAq
ZGVzdCwgc3RydWN0IHBhZ2UgKipzcmNfbGlzdCwgdW5zaWduZWQgaW50IG9mZnNldCwNCj4gIAlz
dHJ1Y3QgZG1hX2RldmljZSAqZGV2aWNlID0gY2hhbiA/IGNoYW4tPmRldmljZSA6IE5VTEw7DQo+
ICAJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICp0eCA9IE5VTEw7DQo+ICAJc3RydWN0
IGRtYWVuZ2luZV91bm1hcF9kYXRhICp1bm1hcCA9IE5VTEw7DQo+ICsJZW51bSBhc3luY190eF9m
bGFncyBmbGFnc19vcmlnID0gc3VibWl0LT5mbGFnczsNCj4gIA0KPiAgCUJVR19PTihzcmNfY250
IDw9IDEpOw0KPiAgDQo+IC0JaWYgKGRldmljZSkNCj4gLQkJdW5tYXAgPSBkbWFlbmdpbmVfZ2V0
X3VubWFwX2RhdGEoZGV2aWNlLT5kZXYsIHNyY19jbnQsIEdGUF9OT0lPKTsNCj4gLQ0KPiAtCWlm
ICh1bm1hcCAmJiBzcmNfY250IDw9IGRldmljZS0+bWF4X3hvciAmJg0KPiArCWlmIChkZXZpY2Ug
JiYgc3JjX2NudCA8PSBkZXZpY2UtPm1heF94b3IgJiYNCj4gIAkgICAgaXNfZG1hX3hvcl9hbGln
bmVkKGRldmljZSwgb2Zmc2V0LCAwLCBsZW4pKSB7DQo+ICAJCXVuc2lnbmVkIGxvbmcgZG1hX3By
ZXBfZmxhZ3MgPSAwOw0KPiAgCQlpbnQgaTsNCj4gQEAgLTI5Myw1MSArMjkzLDU5IEBAIGFzeW5j
X3hvcl92YWwoc3RydWN0IHBhZ2UgKmRlc3QsIHN0cnVjdCBwYWdlICoqc3JjX2xpc3QsIHVuc2ln
bmVkIGludCBvZmZzZXQsDQo+ICAJCWlmIChzdWJtaXQtPmZsYWdzICYgQVNZTkNfVFhfRkVOQ0Up
DQo+ICAJCQlkbWFfcHJlcF9mbGFncyB8PSBETUFfUFJFUF9GRU5DRTsNCj4gIA0KPiAtCQlmb3Ig
KGkgPSAwOyBpIDwgc3JjX2NudDsgaSsrKSB7DQo+IC0JCQl1bm1hcC0+YWRkcltpXSA9IGRtYV9t
YXBfcGFnZShkZXZpY2UtPmRldiwgc3JjX2xpc3RbaV0sDQo+IC0JCQkJCQkgICAgICBvZmZzZXQs
IGxlbiwgRE1BX1RPX0RFVklDRSk7DQo+IC0JCQl1bm1hcC0+dG9fY250Kys7DQo+IC0JCX0NCj4g
LQkJdW5tYXAtPmxlbiA9IGxlbjsNCj4gLQ0KPiAtCQl0eCA9IGRldmljZS0+ZGV2aWNlX3ByZXBf
ZG1hX3hvcl92YWwoY2hhbiwgdW5tYXAtPmFkZHIsIHNyY19jbnQsDQo+IC0JCQkJCQkgICAgIGxl
biwgcmVzdWx0LA0KPiAtCQkJCQkJICAgICBkbWFfcHJlcF9mbGFncyk7DQo+IC0JCWlmICh1bmxp
a2VseSghdHgpKSB7DQo+IC0JCQlhc3luY190eF9xdWllc2NlKCZzdWJtaXQtPmRlcGVuZF90eCk7
DQo+IC0NCj4gLQkJCXdoaWxlICghdHgpIHsNCj4gLQkJCQlkbWFfYXN5bmNfaXNzdWVfcGVuZGlu
ZyhjaGFuKTsNCj4gLQkJCQl0eCA9IGRldmljZS0+ZGV2aWNlX3ByZXBfZG1hX3hvcl92YWwoY2hh
biwNCj4gLQkJCQkJdW5tYXAtPmFkZHIsIHNyY19jbnQsIGxlbiwgcmVzdWx0LA0KPiAtCQkJCQlk
bWFfcHJlcF9mbGFncyk7DQo+ICsJCXVubWFwID0gZG1hZW5naW5lX2dldF91bm1hcF9kYXRhKGRl
dmljZS0+ZGV2LCBzcmNfY250LA0KPiArCQkJCQkJIEdGUF9OT0lPKTsNCj4gKwkJaWYgKHVubWFw
KSB7DQo+ICsJCQlmb3IgKGkgPSAwOyBpIDwgc3JjX2NudDsgaSsrKSB7DQo+ICsJCQkJdW5tYXAt
PmFkZHJbaV0gPSBkbWFfbWFwX3BhZ2UoZGV2aWNlLT5kZXYsDQo+ICsJCQkJCQkJICAgICAgc3Jj
X2xpc3RbaV0sDQo+ICsJCQkJCQkJICAgICAgb2Zmc2V0LCBsZW4sDQo+ICsJCQkJCQkJICAgICAg
RE1BX1RPX0RFVklDRSk7DQo+ICsJCQkJdW5tYXAtPnRvX2NudCsrOw0KPiArCQkJfQ0KPiArCQkJ
dW5tYXAtPmxlbiA9IGxlbjsNCj4gKw0KPiArCQkJdHggPSBkZXZpY2UtPmRldmljZV9wcmVwX2Rt
YV94b3JfdmFsKGNoYW4sIHVubWFwLT5hZGRyLA0KPiArCQkJCQkJCSAgICAgc3JjX2NudCwNCj4g
KwkJCQkJCQkgICAgIGxlbiwgcmVzdWx0LA0KPiArCQkJCQkJCSAgICAgZG1hX3ByZXBfZmxhZ3Mp
Ow0KPiArCQkJaWYgKHVubGlrZWx5KCF0eCkpIHsNCj4gKwkJCQlhc3luY190eF9xdWllc2NlKCZz
dWJtaXQtPmRlcGVuZF90eCk7DQo+ICsNCj4gKwkJCQl3aGlsZSAoIXR4KSB7DQo+ICsJCQkJCWRt
YV9hc3luY19pc3N1ZV9wZW5kaW5nKGNoYW4pOw0KPiArCQkJCQl0eCA9IGRldmljZS0+ZGV2aWNl
X3ByZXBfZG1hX3hvcl92YWwoDQo+ICsJCQkJCQkJY2hhbiwgdW5tYXAtPmFkZHIsDQo+ICsJCQkJ
CQkJc3JjX2NudCwgbGVuLA0KPiArCQkJCQkJCXJlc3VsdCwgZG1hX3ByZXBfZmxhZ3MpOw0KPiAr
CQkJCX0NCj4gIAkJCX0NCj4gKwkJCWRtYV9zZXRfdW5tYXAodHgsIHVubWFwKTsNCj4gKwkJCWFz
eW5jX3R4X3N1Ym1pdChjaGFuLCB0eCwgc3VibWl0KTsNCj4gKw0KPiArCQkJcmV0dXJuIHR4Ow0K
PiAgCQl9DQo+IC0JCWRtYV9zZXRfdW5tYXAodHgsIHVubWFwKTsNCj4gLQkJYXN5bmNfdHhfc3Vi
bWl0KGNoYW4sIHR4LCBzdWJtaXQpOw0KPiAtCX0gZWxzZSB7DQo+IC0JCWVudW0gYXN5bmNfdHhf
ZmxhZ3MgZmxhZ3Nfb3JpZyA9IHN1Ym1pdC0+ZmxhZ3M7DQo+ICsJfQ0KPiAgDQo+IC0JCXByX2Rl
YnVnKCIlczogKHN5bmMpIGxlbjogJXp1XG4iLCBfX2Z1bmNfXywgbGVuKTsNCj4gLQkJV0FSTl9P
TkNFKGRldmljZSAmJiBzcmNfY250IDw9IGRldmljZS0+bWF4X3hvciwNCj4gLQkJCSAgIiVzOiBu
byBzcGFjZSBmb3IgZG1hIGFkZHJlc3MgY29udmVyc2lvblxuIiwNCj4gLQkJCSAgX19mdW5jX18p
Ow0KPiArCS8qIHJ1biB0aGUgeG9yX3ZhbCBzeW5jaHJvbm91c2x5ICovDQo+ICsJcHJfZGVidWco
IiVzOiAoc3luYykgbGVuOiAlenVcbiIsIF9fZnVuY19fLCBsZW4pOw0KPiArCVdBUk5fT05DRShk
ZXZpY2UgJiYgc3JjX2NudCA8PSBkZXZpY2UtPm1heF94b3IsDQo+ICsJCSAgIiVzOiBubyBzcGFj
ZSBmb3IgZG1hIGFkZHJlc3MgY29udmVyc2lvblxuIiwNCj4gKwkJICBfX2Z1bmNfXyk7DQo+ICAN
Cj4gLQkJc3VibWl0LT5mbGFncyB8PSBBU1lOQ19UWF9YT1JfRFJPUF9EU1Q7DQo+IC0JCXN1Ym1p
dC0+ZmxhZ3MgJj0gfkFTWU5DX1RYX0FDSzsNCj4gKwlzdWJtaXQtPmZsYWdzIHw9IEFTWU5DX1RY
X1hPUl9EUk9QX0RTVDsNCj4gKwlzdWJtaXQtPmZsYWdzICY9IH5BU1lOQ19UWF9BQ0s7DQo+ICAN
Cj4gLQkJdHggPSBhc3luY194b3IoZGVzdCwgc3JjX2xpc3QsIG9mZnNldCwgc3JjX2NudCwgbGVu
LCBzdWJtaXQpOw0KPiArCXR4ID0gYXN5bmNfeG9yKGRlc3QsIHNyY19saXN0LCBvZmZzZXQsIHNy
Y19jbnQsIGxlbiwgc3VibWl0KTsNCj4gIA0KPiAtCQlhc3luY190eF9xdWllc2NlKCZ0eCk7DQo+
ICsJYXN5bmNfdHhfcXVpZXNjZSgmdHgpOw0KPiAgDQo+IC0JCSpyZXN1bHQgPSAhcGFnZV9pc196
ZXJvKGRlc3QsIG9mZnNldCwgbGVuKSA8PCBTVU1fQ0hFQ0tfUDsNCj4gKwkqcmVzdWx0ID0gIXBh
Z2VfaXNfemVybyhkZXN0LCBvZmZzZXQsIGxlbikgPDwgU1VNX0NIRUNLX1A7DQo+ICANCj4gLQkJ
YXN5bmNfdHhfc3luY19lcGlsb2coc3VibWl0KTsNCj4gLQkJc3VibWl0LT5mbGFncyA9IGZsYWdz
X29yaWc7DQo+IC0JfQ0KPiAtCWRtYWVuZ2luZV91bm1hcF9wdXQodW5tYXApOw0KPiArCWFzeW5j
X3R4X3N5bmNfZXBpbG9nKHN1Ym1pdCk7DQo+ICsJc3VibWl0LT5mbGFncyA9IGZsYWdzX29yaWc7
DQo+ICANCj4gLQlyZXR1cm4gdHg7DQo+ICsJcmV0dXJuIE5VTEw7DQo+ICB9DQo+ICBFWFBPUlRf
U1lNQk9MX0dQTChhc3luY194b3JfdmFsKTsNCj4gIA0KDQoNCi0tDQpBbmR5IFNoZXZjaGVua28g
PGFuZHJpeS5zaGV2Y2hlbmtvQGludGVsLmNvbT4gSW50ZWwgRmlubGFuZCBPeQ0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQpJbnRlbCBGaW5sYW5kIE95DQpSZWdpc3RlcmVkIEFkZHJlc3M6IFBMIDI4MSwgMDAxODEg
SGVsc2lua2kgQnVzaW5lc3MgSWRlbnRpdHkgQ29kZTogMDM1NzYwNiAtIDQgRG9taWNpbGVkIGlu
IEhlbHNpbmtpIA0KDQpUaGlzIGUtbWFpbCBhbmQgYW55IGF0dGFjaG1lbnRzIG1heSBjb250YWlu
IGNvbmZpZGVudGlhbCBtYXRlcmlhbCBmb3IgdGhlIHNvbGUgdXNlIG9mIHRoZSBpbnRlbmRlZCBy
ZWNpcGllbnQocykuIEFueSByZXZpZXcgb3IgZGlzdHJpYnV0aW9uIGJ5IG90aGVycyBpcyBzdHJp
Y3RseSBwcm9oaWJpdGVkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBw
bGVhc2UgY29udGFjdCB0aGUgc2VuZGVyIGFuZCBkZWxldGUgYWxsIGNvcGllcy4NCg==
next prev parent reply other threads:[~2014-03-20 9:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-20 8:16 [PATCH v2] fix wrong usage of dmaengine_unmap_put in async_xxx xuelin.shi
[not found] ` <1395308689.28803.323.camel@smile.fi.intel.com>
2014-03-20 9:53 ` Xuelin Shi [this message]
2014-03-31 6:54 ` Xuelin Shi
2014-04-10 4:01 ` Dan Williams
2014-04-11 8:31 ` Xuelin Shi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bcaf8719e4bd455dbd6d00a134082c85@BY2PR03MB158.namprd03.prod.outlook.com \
--to=xuelin.shi@freescale.com \
--cc=andriy.shevchenko@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dmaengine@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=vinod.koul@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox