From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 5/6] drm/amdgpu: add timeline support in amdgpu CS Date: Mon, 24 Sep 2018 12:25:02 +0200 Message-ID: <0babf11e-a9fd-ab1d-7809-d9c60d040304@gmail.com> References: <20180920110353.16114-1-david1.zhou@amd.com> <20180920110353.16114-5-david1.zhou@amd.com> Reply-To: christian.koenig@amd.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180920110353.16114-5-david1.zhou@amd.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chunming Zhou , dri-devel@lists.freedesktop.org Cc: amd-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMjAuMDkuMjAxOCB1bSAxMzowMyBzY2hyaWViIENodW5taW5nIFpob3U6Cj4gc3luY29iaiB3 YWl0L3NpZ25hbCBvcGVyYXRpb24gaXMgYXBwZW5kaW5nIGluIGNvbW1hbmQgc3VibWlzc2lvbi4K Pgo+IFNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+Cj4g LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICB8ICAgOCArLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgfCAxMTQgKysrKysrKysr KysrKysrKysrKy0tLS0tLQo+ICAgaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmggICAgICAg ICAgfCAgMTAgKysrCj4gICAzIGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAyOCBk ZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gaW5kZXggNDQ3 YzRjN2EzNmQ2Li42ZTRhM2RiNTY4MzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHUuaAo+IEBAIC05NzUsNiArOTc1LDExIEBAIHN0cnVjdCBhbWRncHVfY3NfY2h1bmsgewo+ICAg CXZvaWQJCQkqa2RhdGE7Cj4gICB9Owo+ICAgCj4gK3N0cnVjdCBhbWRncHVfY3Nfc3luY29ial9w b3N0X2RlcCB7Cj4gKwlzdHJ1Y3QgZHJtX3N5bmNvYmogKnBvc3RfZGVwX3N5bmNvYmo7Cj4gKwl1 NjQgcG9pbnQ7Cj4gK307Cj4gKwo+ICAgc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgewo+ICAgCXN0 cnVjdCBhbWRncHVfZGV2aWNlCSphZGV2Owo+ICAgCXN0cnVjdCBkcm1fZmlsZQkJKmZpbHA7Cj4g QEAgLTEwMDMsOSArMTAwOCw4IEBAIHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyIHsKPiAgIAo+ICAg CS8qIHVzZXIgZmVuY2UgKi8KPiAgIAlzdHJ1Y3QgYW1kZ3B1X2JvX2xpc3RfZW50cnkJdWZfZW50 cnk7Cj4gLQo+ICsJc3RydWN0IGFtZGdwdV9jc19zeW5jb2JqX3Bvc3RfZGVwICpwb3N0X2RlcF9z eW5jb2JqczsKPiAgIAl1bnNpZ25lZCBudW1fcG9zdF9kZXBfc3luY29ianM7Cj4gLQlzdHJ1Y3Qg ZHJtX3N5bmNvYmogKipwb3N0X2RlcF9zeW5jb2JqczsKPiAgIH07Cj4gICAKPiAgIHN0YXRpYyBp bmxpbmUgdTMyIGFtZGdwdV9nZXRfaWJfdmFsdWUoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAs Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPiBpbmRleCA0MTJmYWMyMzg1 NzUuLjBlZmU3NWJmMmYwMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9j cy5jCj4gQEAgLTIwNCw2ICsyMDQsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19wYXJzZXJfaW5p dChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwgdW5pb24gZHJtX2FtZGdwdV9jcwo+ICAgCQlj YXNlIEFNREdQVV9DSFVOS19JRF9ERVBFTkRFTkNJRVM6Cj4gICAJCWNhc2UgQU1ER1BVX0NIVU5L X0lEX1NZTkNPQkpfSU46Cj4gICAJCWNhc2UgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfT1VUOgo+ ICsJCWNhc2UgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfVElNRUxJTkVfV0FJVDoKPiArCQljYXNl IEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTDoKPiAgIAkJCWJyZWFrOwo+ ICAgCj4gICAJCWRlZmF1bHQ6Cj4gQEAgLTc4Myw3ICs3ODUsNyBAQCBzdGF0aWMgdm9pZCBhbWRn cHVfY3NfcGFyc2VyX2Zpbmkoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwgaW50IGVy cm9yLAo+ICAgCQkJCQkgICAmcGFyc2VyLT52YWxpZGF0ZWQpOwo+ICAgCj4gICAJZm9yIChpID0g MDsgaSA8IHBhcnNlci0+bnVtX3Bvc3RfZGVwX3N5bmNvYmpzOyBpKyspCj4gLQkJZHJtX3N5bmNv YmpfcHV0KHBhcnNlci0+cG9zdF9kZXBfc3luY29ianNbaV0pOwo+ICsJCWRybV9zeW5jb2JqX3B1 dChwYXJzZXItPnBvc3RfZGVwX3N5bmNvYmpzW2ldLnBvc3RfZGVwX3N5bmNvYmopOwo+ICAgCWtm cmVlKHBhcnNlci0+cG9zdF9kZXBfc3luY29ianMpOwo+ICAgCj4gICAJZG1hX2ZlbmNlX3B1dChw YXJzZXItPmZlbmNlKTsKPiBAQCAtMTA5OCwxMSArMTEwMCwxMyBAQCBzdGF0aWMgaW50IGFtZGdw dV9jc19wcm9jZXNzX2ZlbmNlX2RlcChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKPiAgIH0K PiAgIAo+ICAgc3RhdGljIGludCBhbWRncHVfc3luY29ial9sb29rdXBfYW5kX2FkZF90b19zeW5j KHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAo+IC0JCQkJCQkgdWludDMyX3QgaGFuZGxlKQo+ ICsJCQkJCQkgdWludDMyX3QgaGFuZGxlLCB1NjQgcG9pbnQsCj4gKwkJCQkJCSB1NjQgZmxhZ3Mp Cj4gICB7Cj4gICAJaW50IHI7Cj4gICAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gLQlyID0g ZHJtX3N5bmNvYmpfZmluZF9mZW5jZShwLT5maWxwLCBoYW5kbGUsIDAsIDAsICZmZW5jZSk7Cj4g Kwo+ICsJciA9IGRybV9zeW5jb2JqX2ZpbmRfZmVuY2UocC0+ZmlscCwgaGFuZGxlLCBwb2ludCwg ZmxhZ3MsICZmZW5jZSk7Cj4gICAJaWYgKHIpCj4gICAJCXJldHVybiByOwo+ICAgCj4gQEAgLTEx MTMsNDggKzExMTcsOTEgQEAgc3RhdGljIGludCBhbWRncHVfc3luY29ial9sb29rdXBfYW5kX2Fk ZF90b19zeW5jKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAo+ICAgfQo+ICAgCj4gICBzdGF0 aWMgaW50IGFtZGdwdV9jc19wcm9jZXNzX3N5bmNvYmpfaW5fZGVwKHN0cnVjdCBhbWRncHVfY3Nf cGFyc2VyICpwLAo+IC0JCQkJCSAgICBzdHJ1Y3QgYW1kZ3B1X2NzX2NodW5rICpjaHVuaykKPiAr CQkJCQkgICAgc3RydWN0IGFtZGdwdV9jc19jaHVuayAqY2h1bmssCj4gKwkJCQkJICAgIGJvb2wg dGltZWxpbmUpCgpZb3Ugc2hvdWxkIHJlYWxseSBqdXN0IGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb24u IFRoZSBvbmx5IHRoaW5rIHlvdSBoYXZlIAppbiBjb21tb24gaGVyZSBpcyBhbGxvY2F0aW5nIHRo ZSBwb3N0X2RlcF9zeW5jIG9iamVjdHMuCgpXb3VsZCBhbHNvIHByZXZlbnQgdGhhdCB3ZSBuZWVk IHRvIG1ha2UgdGhlIHR3byBjaHVuayB0eXBlcyBtdXR1YWwgCmV4Y2x1c2l2ZS4KCkNocmlzdGlh bi4KCj4gICB7Cj4gICAJdW5zaWduZWQgbnVtX2RlcHM7Cj4gICAJaW50IGksIHI7Cj4gLQlzdHJ1 Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0gKmRlcHM7Cj4gICAKPiAtCWRlcHMgPSAoc3RydWN0 IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtICopY2h1bmstPmtkYXRhOwo+IC0JbnVtX2RlcHMgPSBj aHVuay0+bGVuZ3RoX2R3ICogNCAvCj4gLQkJc2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2No dW5rX3NlbSk7Cj4gKwlpZiAoIXRpbWVsaW5lKSB7Cj4gKwkJc3RydWN0IGRybV9hbWRncHVfY3Nf Y2h1bmtfc2VtICpkZXBzOwo+ICAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgbnVtX2RlcHM7ICsraSkg ewo+IC0JCXIgPSBhbWRncHVfc3luY29ial9sb29rdXBfYW5kX2FkZF90b19zeW5jKHAsIGRlcHNb aV0uaGFuZGxlKTsKPiArCQlkZXBzID0gKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3NlbSAq KWNodW5rLT5rZGF0YTsKPiArCQludW1fZGVwcyA9IGNodW5rLT5sZW5ndGhfZHcgKiA0IC8KPiAr CQkJc2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3NlbSk7Cj4gKwkJZm9yIChpID0g MDsgaSA8IG51bV9kZXBzOyArK2kpIHsKPiArCQkJciA9IGFtZGdwdV9zeW5jb2JqX2xvb2t1cF9h bmRfYWRkX3RvX3N5bmMocCwgZGVwc1tpXS5oYW5kbGUsCj4gKwkJCQkJCQkJICAwLCAwKTsKPiAg IAkJaWYgKHIpCj4gICAJCQlyZXR1cm4gcjsKPiArCQl9Cj4gKwl9IGVsc2Ugewo+ICsJCXN0cnVj dCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmogKnN5bmNvYmpfZGVwczsKPiArCj4gKwkJc3lu Y29ial9kZXBzID0gKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmogKiljaHVuay0+ a2RhdGE7Cj4gKwkJbnVtX2RlcHMgPSBjaHVuay0+bGVuZ3RoX2R3ICogNCAvCj4gKwkJCXNpemVv ZihzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zeW5jb2JqKTsKPiArCQlmb3IgKGkgPSAwOyBp IDwgbnVtX2RlcHM7ICsraSkgewo+ICsJCQlyID0gYW1kZ3B1X3N5bmNvYmpfbG9va3VwX2FuZF9h ZGRfdG9fc3luYyhwLCBzeW5jb2JqX2RlcHNbaV0uaGFuZGxlLAo+ICsJCQkJCQkJCSAgc3luY29i al9kZXBzW2ldLnBvaW50LAo+ICsJCQkJCQkJCSAgc3luY29ial9kZXBzW2ldLmZsYWdzKTsKPiAr CQlpZiAocikKPiArCQkJcmV0dXJuIHI7Cj4gKwkJfQo+ICAgCX0KPiArCj4gICAJcmV0dXJuIDA7 Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3Byb2Nlc3Nfc3luY29ial9vdXRf ZGVwKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAo+IC0JCQkJCSAgICAgc3RydWN0IGFtZGdw dV9jc19jaHVuayAqY2h1bmspCj4gKwkJCQkJICAgICBzdHJ1Y3QgYW1kZ3B1X2NzX2NodW5rICpj aHVuaywKPiArCQkJCQkgICAgIGJvb2wgdGltZWxpbmUpCj4gICB7Cj4gICAJdW5zaWduZWQgbnVt X2RlcHM7Cj4gICAJaW50IGk7Cj4gICAJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtICpk ZXBzOwo+IC0JZGVwcyA9IChzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0gKiljaHVuay0+ a2RhdGE7Cj4gLQludW1fZGVwcyA9IGNodW5rLT5sZW5ndGhfZHcgKiA0IC8KPiAtCQlzaXplb2Yo c3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtKTsKPiArCXN0cnVjdCBkcm1fYW1kZ3B1X2Nz X2NodW5rX3N5bmNvYmogKnN5bmNvYmpfZGVwczsKPiArCj4gKwlpZiAoIXRpbWVsaW5lKSB7Cj4g KwkJZGVwcyA9IChzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0gKiljaHVuay0+a2RhdGE7 Cj4gKwkJbnVtX2RlcHMgPSBjaHVuay0+bGVuZ3RoX2R3ICogNCAvCj4gKwkJCXNpemVvZihzdHJ1 Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0pOwo+ICsJfSBlbHNlIHsKPiArCQlzeW5jb2JqX2Rl cHMgPSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaiAqKWNodW5rLT5rZGF0YTsK PiArCQludW1fZGVwcyA9IGNodW5rLT5sZW5ndGhfZHcgKiA0IC8KPiArCQkJc2l6ZW9mKHN0cnVj dCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmopOwo+ICsJfQo+ICsKPiAgIAo+ICAgCXAtPnBv c3RfZGVwX3N5bmNvYmpzID0ga21hbGxvY19hcnJheShudW1fZGVwcywKPiAtCQkJCQkgICAgIHNp emVvZihzdHJ1Y3QgZHJtX3N5bmNvYmogKiksCj4gKwkJCQkJICAgICBzaXplb2Yoc3RydWN0IGFt ZGdwdV9jc19zeW5jb2JqX3Bvc3RfZGVwKSwKPiAgIAkJCQkJICAgICBHRlBfS0VSTkVMKTsKPiAg IAlwLT5udW1fcG9zdF9kZXBfc3luY29ianMgPSAwOwo+ICAgCj4gICAJaWYgKCFwLT5wb3N0X2Rl cF9zeW5jb2JqcykKPiAgIAkJcmV0dXJuIC1FTk9NRU07Cj4gICAKPiAtCWZvciAoaSA9IDA7IGkg PCBudW1fZGVwczsgKytpKSB7Cj4gLQkJcC0+cG9zdF9kZXBfc3luY29ianNbaV0gPSBkcm1fc3lu Y29ial9maW5kKHAtPmZpbHAsIGRlcHNbaV0uaGFuZGxlKTsKPiAtCQlpZiAoIXAtPnBvc3RfZGVw X3N5bmNvYmpzW2ldKQo+IC0JCQlyZXR1cm4gLUVJTlZBTDsKPiAtCQlwLT5udW1fcG9zdF9kZXBf c3luY29ianMrKzsKPiArCj4gKwlpZiAoIXRpbWVsaW5lKSB7Cj4gKwkJZm9yIChpID0gMDsgaSA8 IG51bV9kZXBzOyArK2kpIHsKPiArCQkJcC0+cG9zdF9kZXBfc3luY29ianNbaV0ucG9zdF9kZXBf c3luY29iaiA9Cj4gKwkJCQlkcm1fc3luY29ial9maW5kKHAtPmZpbHAsIGRlcHNbaV0uaGFuZGxl KTsKPiArCQkJaWYgKCFwLT5wb3N0X2RlcF9zeW5jb2Jqc1tpXS5wb3N0X2RlcF9zeW5jb2JqKQo+ ICsJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJCXAtPnBvc3RfZGVwX3N5bmNvYmpzW2ldLnBvaW50 ID0gMDsKPiArCQkJcC0+bnVtX3Bvc3RfZGVwX3N5bmNvYmpzKys7Cj4gKwkJfQo+ICsJfSBlbHNl IHsKPiArCQlmb3IgKGkgPSAwOyBpIDwgbnVtX2RlcHM7ICsraSkgewo+ICsJCQlwLT5wb3N0X2Rl cF9zeW5jb2Jqc1tpXS5wb3N0X2RlcF9zeW5jb2JqID0KPiArCQkJCWRybV9zeW5jb2JqX2ZpbmQo cC0+ZmlscCwgc3luY29ial9kZXBzW2ldLmhhbmRsZSk7Cj4gKwkJCWlmICghcC0+cG9zdF9kZXBf c3luY29ianNbaV0ucG9zdF9kZXBfc3luY29iaikKPiArCQkJCXJldHVybiAtRUlOVkFMOwo+ICsJ CQlwLT5wb3N0X2RlcF9zeW5jb2Jqc1tpXS5wb2ludCA9IHN5bmNvYmpfZGVwc1tpXS5wb2ludDsK PiArCQkJcC0+bnVtX3Bvc3RfZGVwX3N5bmNvYmpzKys7Cj4gKwkJfQo+ICAgCX0KPiArCj4gICAJ cmV0dXJuIDA7Cj4gICB9Cj4gICAKPiBAQCAtMTE2OCwxOCArMTIxNSwzMiBAQCBzdGF0aWMgaW50 IGFtZGdwdV9jc19kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAK PiAgIAkJY2h1bmsgPSAmcC0+Y2h1bmtzW2ldOwo+ICAgCj4gLQkJaWYgKGNodW5rLT5jaHVua19p ZCA9PSBBTURHUFVfQ0hVTktfSURfREVQRU5ERU5DSUVTKSB7Cj4gKwkJc3dpdGNoIChjaHVuay0+ Y2h1bmtfaWQpIHsKPiArCQljYXNlIEFNREdQVV9DSFVOS19JRF9ERVBFTkRFTkNJRVM6Cj4gICAJ CQlyID0gYW1kZ3B1X2NzX3Byb2Nlc3NfZmVuY2VfZGVwKHAsIGNodW5rKTsKPiAgIAkJCWlmIChy KQo+ICAgCQkJCXJldHVybiByOwo+IC0JCX0gZWxzZSBpZiAoY2h1bmstPmNodW5rX2lkID09IEFN REdQVV9DSFVOS19JRF9TWU5DT0JKX0lOKSB7Cj4gLQkJCXIgPSBhbWRncHVfY3NfcHJvY2Vzc19z eW5jb2JqX2luX2RlcChwLCBjaHVuayk7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgQU1ER1BVX0NI VU5LX0lEX1NZTkNPQkpfSU46Cj4gKwkJCXIgPSBhbWRncHVfY3NfcHJvY2Vzc19zeW5jb2JqX2lu X2RlcChwLCBjaHVuaywgZmFsc2UpOwo+ICsJCQlpZiAocikKPiArCQkJCXJldHVybiByOwo+ICsJ CQlicmVhazsKPiArCQljYXNlIEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX09VVDoKPiArCQkJciA9 IGFtZGdwdV9jc19wcm9jZXNzX3N5bmNvYmpfb3V0X2RlcChwLCBjaHVuaywgZmFsc2UpOwo+ICAg CQkJaWYgKHIpCj4gICAJCQkJcmV0dXJuIHI7Cj4gLQkJfSBlbHNlIGlmIChjaHVuay0+Y2h1bmtf aWQgPT0gQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfT1VUKSB7Cj4gLQkJCXIgPSBhbWRncHVfY3Nf cHJvY2Vzc19zeW5jb2JqX291dF9kZXAocCwgY2h1bmspOwo+ICsJCQlicmVhazsKPiArCQljYXNl IEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQ6Cj4gKwkJCXIgPSBhbWRncHVf Y3NfcHJvY2Vzc19zeW5jb2JqX2luX2RlcChwLCBjaHVuaywgdHJ1ZSk7Cj4gICAJCQlpZiAocikK PiAgIAkJCQlyZXR1cm4gcjsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSBBTURHUFVfQ0hVTktfSURf U1lOQ09CSl9USU1FTElORV9TSUdOQUw6Cj4gKwkJCXIgPSBhbWRncHVfY3NfcHJvY2Vzc19zeW5j b2JqX291dF9kZXAocCwgY2h1bmssIHRydWUpOwo+ICsJCQlpZiAocikKPiArCQkJCXJldHVybiBy Owo+ICsJCQlicmVhazsKPiAgIAkJfQo+ICAgCX0KPiAgIAo+IEBAIC0xMTkxLDcgKzEyNTIsOCBA QCBzdGF0aWMgdm9pZCBhbWRncHVfY3NfcG9zdF9kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9j c19wYXJzZXIgKnApCj4gICAJaW50IGk7Cj4gICAKPiAgIAlmb3IgKGkgPSAwOyBpIDwgcC0+bnVt X3Bvc3RfZGVwX3N5bmNvYmpzOyArK2kpCj4gLQkJZHJtX3N5bmNvYmpfcmVwbGFjZV9mZW5jZShw LT5wb3N0X2RlcF9zeW5jb2Jqc1tpXSwgMCwgcC0+ZmVuY2UpOwo+ICsJCWRybV9zeW5jb2JqX3Jl cGxhY2VfZmVuY2UocC0+cG9zdF9kZXBfc3luY29ianNbaV0ucG9zdF9kZXBfc3luY29iaiwKPiAr CQkJCQkgIHAtPnBvc3RfZGVwX3N5bmNvYmpzW2ldLnBvaW50LCBwLT5mZW5jZSk7Cj4gICB9Cj4g ICAKPiAgIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNl ciAqcCwKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmggYi9pbmNs dWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAo+IGluZGV4IDFjZWVjNTZkZTAxNS4uNDEyMzU5YjQ0 NmYxIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCj4gKysrIGIv aW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPiBAQCAtNTE3LDYgKzUxNyw4IEBAIHN0cnVj dCBkcm1fYW1kZ3B1X2dlbV92YSB7Cj4gICAjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9TWU5DT0JK X0lOICAgICAgMHgwNAo+ICAgI2RlZmluZSBBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9PVVQgICAg IDB4MDUKPiAgICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX0JPX0hBTkRMRVMgICAgICAweDA2Cj4g KyNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfVElNRUxJTkVfV0FJVCAgICAweDA3Cj4g KyNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfVElNRUxJTkVfU0lHTkFMICAweDA4Cj4g ICAKPiAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rIHsKPiAgIAlfX3UzMgkJY2h1bmtfaWQ7 Cj4gQEAgLTU5Miw2ICs1OTQsMTQgQEAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtIHsK PiAgIAlfX3UzMiBoYW5kbGU7Cj4gICB9Owo+ICAgCj4gK3N0cnVjdCBkcm1fYW1kZ3B1X2NzX2No dW5rX3N5bmNvYmogewo+ICsgICAgICAgX191MzIgaGFuZGxlOwo+ICsgICAgICAgX191MzIgcGFk Owo+ICsgICAgICAgX191NjQgcG9pbnQ7Cj4gKyAgICAgICBfX3U2NCBmbGFnczsKPiArfTsKPiAr Cj4gKwo+ICAgI2RlZmluZSBBTURHUFVfRkVOQ0VfVE9fSEFORExFX0dFVF9TWU5DT0JKCTAKPiAg ICNkZWZpbmUgQU1ER1BVX0ZFTkNFX1RPX0hBTkRMRV9HRVRfU1lOQ09CSl9GRAkxCj4gICAjZGVm aW5lIEFNREdQVV9GRU5DRV9UT19IQU5ETEVfR0VUX1NZTkNfRklMRV9GRAkyCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK