From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH 1/6] drm/amdgpu: rework VM state machine lock handling v2 Date: Fri, 18 May 2018 17:55:31 +0800 Message-ID: <5AFEA313.8040905@amd.com> References: <20180517094936.4293-1-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: <20180517094936.4293-1-christian.koenig-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org MiwgMywgNCwgNSBhcmUKUmV2aWV3ZWQtYnk6IEp1bndlaSBaaGFuZyA8SmVycnkuWmhhbmdAYW1k LmNvbT4KClBhdGNoIDE6CmNvdWxkIHlvdSBzaG93IHRoZSByZXNlcnZpbmcgVk0/CgpQYXRjaCA2 OgpJIGNvdWxkIHJlYWQgdGhhdCBjb2RlLCBidXQgbm90IHN1cmUgdGhlIHB1cnBvc2UuCgpKZXJy eQoKT24gMDUvMTcvMjAxOCAwNTo0OSBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBPbmx5 IHRoZSBtb3ZlZCBzdGF0ZSBuZWVkcyBhIHNlcGFyYXRlIHNwaW4gbG9jayBwcm90ZWN0aW9uLiBB bGwgb3RoZXIKPiBzdGF0ZXMgYXJlIHByb3RlY3RlZCBieSByZXNlcnZpbmcgdGhlIFZNIGFueXdh eS4KPgo+IHYyOiBmaXggc29tZSBtb3JlIGluY29ycmVjdCBjYXNlcwo+Cj4gU2lnbmVkLW9mZi1i eTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgfCA2NiArKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdm0uaCB8ICA0ICstLQo+ICAgMiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA0 OSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4g aW5kZXggMWE4ZjRlMGRkMDIzLi5mMGRlZWRjYWYxYzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYwo+IEBAIC0xMTksOSArMTE5LDcgQEAgc3RhdGljIHZvaWQgYW1k Z3B1X3ZtX2JvX2Jhc2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X3ZtX2JvX2Jhc2UgKmJhc2UsCj4gICAJ ICogaXMgY3VycmVudGx5IGV2aWN0ZWQuIGFkZCB0aGUgYm8gdG8gdGhlIGV2aWN0ZWQgbGlzdCB0 byBtYWtlIHN1cmUgaXQKPiAgIAkgKiBpcyB2YWxpZGF0ZWQgb24gbmV4dCB2bSB1c2UgdG8gYXZv aWQgZmF1bHQuCj4gICAJICogKi8KPiAtCXNwaW5fbG9jaygmdm0tPnN0YXR1c19sb2NrKTsKPiAg IAlsaXN0X21vdmVfdGFpbCgmYmFzZS0+dm1fc3RhdHVzLCAmdm0tPmV2aWN0ZWQpOwo+IC0Jc3Bp bl91bmxvY2soJnZtLT5zdGF0dXNfbG9jayk7Cj4gICB9Cj4KPiAgIC8qKgo+IEBAIC0yMjgsNyAr MjI2LDYgQEAgaW50IGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3Moc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+ICAgCXN0cnVjdCB0dG1fYm9fZ2xvYmFs ICpnbG9iID0gYWRldi0+bW1hbi5iZGV2Lmdsb2I7Cj4gICAJaW50IHI7Cj4KPiAtCXNwaW5fbG9j aygmdm0tPnN0YXR1c19sb2NrKTsKPiAgIAl3aGlsZSAoIWxpc3RfZW1wdHkoJnZtLT5ldmljdGVk KSkgewo+ICAgCQlzdHJ1Y3QgYW1kZ3B1X3ZtX2JvX2Jhc2UgKmJvX2Jhc2U7Cj4gICAJCXN0cnVj dCBhbWRncHVfYm8gKmJvOwo+IEBAIC0yMzYsMTAgKzIzMyw4IEBAIGludCBhbWRncHVfdm1fdmFs aWRhdGVfcHRfYm9zKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3Zt ICp2bSwKPiAgIAkJYm9fYmFzZSA9IGxpc3RfZmlyc3RfZW50cnkoJnZtLT5ldmljdGVkLAo+ICAg CQkJCQkgICBzdHJ1Y3QgYW1kZ3B1X3ZtX2JvX2Jhc2UsCj4gICAJCQkJCSAgIHZtX3N0YXR1cyk7 Cj4gLQkJc3Bpbl91bmxvY2soJnZtLT5zdGF0dXNfbG9jayk7Cj4KPiAgIAkJYm8gPSBib19iYXNl LT5ibzsKPiAtCQlCVUdfT04oIWJvKTsKPiAgIAkJaWYgKGJvLT5wYXJlbnQpIHsKPiAgIAkJCXIg PSB2YWxpZGF0ZShwYXJhbSwgYm8pOwo+ICAgCQkJaWYgKHIpCj4gQEAgLTI1OSwxMyArMjU0LDE0 IEBAIGludCBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiAgIAkJCQlyZXR1cm4gcjsKPiAgIAkJfQo+Cj4g LQkJc3Bpbl9sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+IC0JCWlmIChiby0+dGJvLnR5cGUgIT0g dHRtX2JvX3R5cGVfa2VybmVsKQo+ICsJCWlmIChiby0+dGJvLnR5cGUgIT0gdHRtX2JvX3R5cGVf a2VybmVsKSB7Cj4gKwkJCXNwaW5fbG9jaygmdm0tPm1vdmVkX2xvY2spOwo+ICAgCQkJbGlzdF9t b3ZlKCZib19iYXNlLT52bV9zdGF0dXMsICZ2bS0+bW92ZWQpOwo+IC0JCWVsc2UKPiArCQkJc3Bp bl91bmxvY2soJnZtLT5tb3ZlZF9sb2NrKTsKPiArCQl9IGVsc2Ugewo+ICAgCQkJbGlzdF9tb3Zl KCZib19iYXNlLT52bV9zdGF0dXMsICZ2bS0+cmVsb2NhdGVkKTsKPiArCQl9Cj4gICAJfQo+IC0J c3Bpbl91bmxvY2soJnZtLT5zdGF0dXNfbG9jayk7Cj4KPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiBA QCAtMjc5LDEzICsyNzUsNyBAQCBpbnQgYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2JvcyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCj4gICAgKi8KPiAgIGJv b2wgYW1kZ3B1X3ZtX3JlYWR5KHN0cnVjdCBhbWRncHVfdm0gKnZtKQo+ICAgewo+IC0JYm9vbCBy ZWFkeTsKPiAtCj4gLQlzcGluX2xvY2soJnZtLT5zdGF0dXNfbG9jayk7Cj4gLQlyZWFkeSA9IGxp c3RfZW1wdHkoJnZtLT5ldmljdGVkKTsKPiAtCXNwaW5fdW5sb2NrKCZ2bS0+c3RhdHVzX2xvY2sp Owo+IC0KPiAtCXJldHVybiByZWFkeTsKPiArCXJldHVybiBsaXN0X2VtcHR5KCZ2bS0+ZXZpY3Rl ZCk7Cj4gICB9Cj4KPiAgIC8qKgo+IEBAIC00NzcsOSArNDY3LDcgQEAgc3RhdGljIGludCBhbWRn cHVfdm1fYWxsb2NfbGV2ZWxzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAgCQkJcHQt PnBhcmVudCA9IGFtZGdwdV9ib19yZWYocGFyZW50LT5iYXNlLmJvKTsKPgo+ICAgCQkJYW1kZ3B1 X3ZtX2JvX2Jhc2VfaW5pdCgmZW50cnktPmJhc2UsIHZtLCBwdCk7Cj4gLQkJCXNwaW5fbG9jaygm dm0tPnN0YXR1c19sb2NrKTsKPiAgIAkJCWxpc3RfbW92ZSgmZW50cnktPmJhc2Uudm1fc3RhdHVz LCAmdm0tPnJlbG9jYXRlZCk7Cj4gLQkJCXNwaW5fdW5sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+ ICAgCQl9Cj4KPiAgIAkJaWYgKGxldmVsIDwgQU1ER1BVX1ZNX1BUQikgewo+IEBAIC05MjYsMTAg KzkxNCw4IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92bV9pbnZhbGlkYXRlX2xldmVsKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAo+ICAgCQlpZiAoIWVudHJ5LT5iYXNlLmJvKQo+ICAgCQkJY29u dGludWU7Cj4KPiAtCQlzcGluX2xvY2soJnZtLT5zdGF0dXNfbG9jayk7Cj4gICAJCWlmIChsaXN0 X2VtcHR5KCZlbnRyeS0+YmFzZS52bV9zdGF0dXMpKQo+ICAgCQkJbGlzdF9hZGQoJmVudHJ5LT5i YXNlLnZtX3N0YXR1cywgJnZtLT5yZWxvY2F0ZWQpOwo+IC0JCXNwaW5fdW5sb2NrKCZ2bS0+c3Rh dHVzX2xvY2spOwo+ICAgCQlhbWRncHVfdm1faW52YWxpZGF0ZV9sZXZlbChhZGV2LCB2bSwgZW50 cnksIGxldmVsICsgMSk7Cj4gICAJfQo+ICAgfQo+IEBAIC05NzQsNyArOTYwLDYgQEAgaW50IGFt ZGdwdV92bV91cGRhdGVfZGlyZWN0b3JpZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4g ICAJCXBhcmFtcy5mdW5jID0gYW1kZ3B1X3ZtX2RvX3NldF9wdGVzOwo+ICAgCX0KPgo+IC0Jc3Bp bl9sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+ICAgCXdoaWxlICghbGlzdF9lbXB0eSgmdm0tPnJl bG9jYXRlZCkpIHsKPiAgIAkJc3RydWN0IGFtZGdwdV92bV9ib19iYXNlICpib19iYXNlLCAqcGFy ZW50Owo+ICAgCQlzdHJ1Y3QgYW1kZ3B1X3ZtX3B0ICpwdCwgKmVudHJ5Owo+IEBAIC05ODQsMTMg Kzk2OSwxMCBAQCBpbnQgYW1kZ3B1X3ZtX3VwZGF0ZV9kaXJlY3RvcmllcyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKPiAgIAkJCQkJICAgc3RydWN0IGFtZGdwdV92bV9ib19iYXNlLAo+ICAg CQkJCQkgICB2bV9zdGF0dXMpOwo+ICAgCQlsaXN0X2RlbF9pbml0KCZib19iYXNlLT52bV9zdGF0 dXMpOwo+IC0JCXNwaW5fdW5sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+Cj4gICAJCWJvID0gYm9f YmFzZS0+Ym8tPnBhcmVudDsKPiAtCQlpZiAoIWJvKSB7Cj4gLQkJCXNwaW5fbG9jaygmdm0tPnN0 YXR1c19sb2NrKTsKPiArCQlpZiAoIWJvKQo+ICAgCQkJY29udGludWU7Cj4gLQkJfQo+Cj4gICAJ CXBhcmVudCA9IGxpc3RfZmlyc3RfZW50cnkoJmJvLT52YSwgc3RydWN0IGFtZGdwdV92bV9ib19i YXNlLAo+ICAgCQkJCQkgIGJvX2xpc3QpOwo+IEBAIC05OTksMTIgKzk4MSwxMCBAQCBpbnQgYW1k Z3B1X3ZtX3VwZGF0ZV9kaXJlY3RvcmllcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPgo+ ICAgCQlhbWRncHVfdm1fdXBkYXRlX3BkZSgmcGFyYW1zLCB2bSwgcHQsIGVudHJ5KTsKPgo+IC0J CXNwaW5fbG9jaygmdm0tPnN0YXR1c19sb2NrKTsKPiAgIAkJaWYgKCF2bS0+dXNlX2NwdV9mb3Jf dXBkYXRlICYmCj4gICAJCSAgICAobmR3IC0gcGFyYW1zLmliLT5sZW5ndGhfZHcpIDwgMzIpCj4g ICAJCQlicmVhazsKPiAgIAl9Cj4gLQlzcGluX3VubG9jaygmdm0tPnN0YXR1c19sb2NrKTsKPgo+ ICAgCWlmICh2bS0+dXNlX2NwdV9mb3JfdXBkYXRlKSB7Cj4gICAJCS8qIEZsdXNoIEhEUCAqLwo+ IEBAIC0xMTA3LDkgKzEwODcsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdm1faGFuZGxlX2h1Z2Vf cGFnZXMoc3RydWN0IGFtZGdwdV9wdGVfdXBkYXRlX3BhcmFtcyAqcCwKPiAgIAkJaWYgKGVudHJ5 LT5odWdlKSB7Cj4gICAJCQkvKiBBZGQgdGhlIGVudHJ5IHRvIHRoZSByZWxvY2F0ZWQgbGlzdCB0 byB1cGRhdGUgaXQuICovCj4gICAJCQllbnRyeS0+aHVnZSA9IGZhbHNlOwo+IC0JCQlzcGluX2xv Y2soJnAtPnZtLT5zdGF0dXNfbG9jayk7Cj4gICAJCQlsaXN0X21vdmUoJmVudHJ5LT5iYXNlLnZt X3N0YXR1cywgJnAtPnZtLT5yZWxvY2F0ZWQpOwo+IC0JCQlzcGluX3VubG9jaygmcC0+dm0tPnN0 YXR1c19sb2NrKTsKPiAgIAkJfQo+ICAgCQlyZXR1cm47Cj4gICAJfQo+IEBAIC0xNTg4LDggKzE1 NjYsOSBAQCBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiAgIAkJYW1kZ3B1X2FzaWNfZmx1c2hfaGRwKGFkZXYsIE5VTEwpOwo+ICAgCX0KPgo+IC0J c3Bpbl9sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+ICsJc3Bpbl9sb2NrKCZ2bS0+bW92ZWRfbG9j ayk7Cj4gICAJbGlzdF9kZWxfaW5pdCgmYm9fdmEtPmJhc2Uudm1fc3RhdHVzKTsKPiArCXNwaW5f dW5sb2NrKCZ2bS0+bW92ZWRfbG9jayk7Cj4KPiAgIAkvKiBJZiB0aGUgQk8gaXMgbm90IGluIGl0 cyBwcmVmZXJyZWQgbG9jYXRpb24gYWRkIGl0IGJhY2sgdG8KPiAgIAkgKiB0aGUgZXZpY3RlZCBs aXN0IHNvIHRoYXQgaXQgZ2V0cyB2YWxpZGF0ZWQgYWdhaW4gb24gdGhlCj4gQEAgLTE1OTksNyAr MTU3OCw2IEBAIGludCBhbWRncHVfdm1fYm9fdXBkYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LAo+ICAgCSAgICAhKGJvLT5wcmVmZXJyZWRfZG9tYWlucyAmCj4gICAJICAgIGFtZGdwdV9t ZW1fdHlwZV90b19kb21haW4oYm8tPnRiby5tZW0ubWVtX3R5cGUpKSkKPiAgIAkJbGlzdF9hZGRf dGFpbCgmYm9fdmEtPmJhc2Uudm1fc3RhdHVzLCAmdm0tPmV2aWN0ZWQpOwo+IC0Jc3Bpbl91bmxv Y2soJnZtLT5zdGF0dXNfbG9jayk7Cj4KPiAgIAlsaXN0X3NwbGljZV9pbml0KCZib192YS0+aW52 YWxpZHMsICZib192YS0+dmFsaWRzKTsKPiAgIAlib192YS0+Y2xlYXJlZCA9IGNsZWFyOwo+IEBA IC0xODExLDE0ICsxNzg5LDE0IEBAIGludCBhbWRncHVfdm1faGFuZGxlX21vdmVkKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAo+ICAgCWJvb2wgY2xlYXI7Cj4gICAJaW50IHIgPSAwOwo+Cj4g LQlzcGluX2xvY2soJnZtLT5zdGF0dXNfbG9jayk7Cj4gKwlzcGluX2xvY2soJnZtLT5tb3ZlZF9s b2NrKTsKPiAgIAl3aGlsZSAoIWxpc3RfZW1wdHkoJnZtLT5tb3ZlZCkpIHsKPiAgIAkJc3RydWN0 IGFtZGdwdV9ib192YSAqYm9fdmE7Cj4gICAJCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJl c3Y7Cj4KPiAgIAkJYm9fdmEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZ2bS0+bW92ZWQsCj4gICAJCQlz dHJ1Y3QgYW1kZ3B1X2JvX3ZhLCBiYXNlLnZtX3N0YXR1cyk7Cj4gLQkJc3Bpbl91bmxvY2soJnZt LT5zdGF0dXNfbG9jayk7Cj4gKwkJc3Bpbl91bmxvY2soJnZtLT5tb3ZlZF9sb2NrKTsKPgo+ICAg CQlyZXN2ID0gYm9fdmEtPmJhc2UuYm8tPnRiby5yZXN2Owo+Cj4gQEAgLTE4MzksOSArMTgxNyw5 IEBAIGludCBhbWRncHVfdm1faGFuZGxlX21vdmVkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAo+ICAgCQlpZiAoIWNsZWFyICYmIHJlc3YgIT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3Yp Cj4gICAJCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKHJlc3YpOwo+Cj4gLQkJc3Bpbl9sb2Nr KCZ2bS0+c3RhdHVzX2xvY2spOwo+ICsJCXNwaW5fbG9jaygmdm0tPm1vdmVkX2xvY2spOwo+ICAg CX0KPiAtCXNwaW5fdW5sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+ICsJc3Bpbl91bmxvY2soJnZt LT5tb3ZlZF9sb2NrKTsKPgo+ICAgCXJldHVybiByOwo+ICAgfQo+IEBAIC0xOTAzLDEwICsxODgx LDEwIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92bV9ib19pbnNlcnRfbWFwKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAo+ICAgCQlhbWRncHVfdm1fcHJ0X2dldChhZGV2KTsKPgo+ICAgCWlmIChi byAmJiBiby0+dGJvLnJlc3YgPT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3YpIHsKPiAtCQlz cGluX2xvY2soJnZtLT5zdGF0dXNfbG9jayk7Cj4gKwkJc3Bpbl9sb2NrKCZ2bS0+bW92ZWRfbG9j ayk7Cj4gICAJCWlmIChsaXN0X2VtcHR5KCZib192YS0+YmFzZS52bV9zdGF0dXMpKQo+ICAgCQkJ bGlzdF9hZGQoJmJvX3ZhLT5iYXNlLnZtX3N0YXR1cywgJnZtLT5tb3ZlZCk7Cj4gLQkJc3Bpbl91 bmxvY2soJnZtLT5zdGF0dXNfbG9jayk7Cj4gKwkJc3Bpbl91bmxvY2soJnZtLT5tb3ZlZF9sb2Nr KTsKPiAgIAl9Cj4gICAJdHJhY2VfYW1kZ3B1X3ZtX2JvX21hcChib192YSwgbWFwcGluZyk7Cj4g ICB9Cj4gQEAgLTIyMTYsOSArMjE5NCw5IEBAIHZvaWQgYW1kZ3B1X3ZtX2JvX3JtdihzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKPgo+ICAgCWxpc3RfZGVsKCZib192YS0+YmFzZS5ib19saXN0 KTsKPgo+IC0Jc3Bpbl9sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+ICsJc3Bpbl9sb2NrKCZ2bS0+ bW92ZWRfbG9jayk7Cj4gICAJbGlzdF9kZWwoJmJvX3ZhLT5iYXNlLnZtX3N0YXR1cyk7Cj4gLQlz cGluX3VubG9jaygmdm0tPnN0YXR1c19sb2NrKTsKPiArCXNwaW5fdW5sb2NrKCZ2bS0+bW92ZWRf bG9jayk7Cj4KPiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobWFwcGluZywgbmV4dCwgJmJv X3ZhLT52YWxpZHMsIGxpc3QpIHsKPiAgIAkJbGlzdF9kZWwoJm1hcHBpbmctPmxpc3QpOwo+IEBA IC0yMjYxLDI4ICsyMjM5LDI0IEBAIHZvaWQgYW1kZ3B1X3ZtX2JvX2ludmFsaWRhdGUoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4KPiAgIAkJYm9fYmFzZS0+bW92ZWQgPSB0cnVlOwo+ICAg CQlpZiAoZXZpY3RlZCAmJiBiby0+dGJvLnJlc3YgPT0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJl c3YpIHsKPiAtCQkJc3Bpbl9sb2NrKCZib19iYXNlLT52bS0+c3RhdHVzX2xvY2spOwo+ICAgCQkJ aWYgKGJvLT50Ym8udHlwZSA9PSB0dG1fYm9fdHlwZV9rZXJuZWwpCj4gICAJCQkJbGlzdF9tb3Zl KCZib19iYXNlLT52bV9zdGF0dXMsICZ2bS0+ZXZpY3RlZCk7Cj4gICAJCQllbHNlCj4gICAJCQkJ bGlzdF9tb3ZlX3RhaWwoJmJvX2Jhc2UtPnZtX3N0YXR1cywKPiAgIAkJCQkJICAgICAgICZ2bS0+ ZXZpY3RlZCk7Cj4gLQkJCXNwaW5fdW5sb2NrKCZib19iYXNlLT52bS0+c3RhdHVzX2xvY2spOwo+ ICAgCQkJY29udGludWU7Cj4gICAJCX0KPgo+ICAgCQlpZiAoYm8tPnRiby50eXBlID09IHR0bV9i b190eXBlX2tlcm5lbCkgewo+IC0JCQlzcGluX2xvY2soJmJvX2Jhc2UtPnZtLT5zdGF0dXNfbG9j ayk7Cj4gICAJCQlpZiAobGlzdF9lbXB0eSgmYm9fYmFzZS0+dm1fc3RhdHVzKSkKPiAgIAkJCQls aXN0X2FkZCgmYm9fYmFzZS0+dm1fc3RhdHVzLCAmdm0tPnJlbG9jYXRlZCk7Cj4gLQkJCXNwaW5f dW5sb2NrKCZib19iYXNlLT52bS0+c3RhdHVzX2xvY2spOwo+ICAgCQkJY29udGludWU7Cj4gICAJ CX0KPgo+IC0JCXNwaW5fbG9jaygmYm9fYmFzZS0+dm0tPnN0YXR1c19sb2NrKTsKPiArCQlzcGlu X2xvY2soJmJvX2Jhc2UtPnZtLT5tb3ZlZF9sb2NrKTsKPiAgIAkJaWYgKGxpc3RfZW1wdHkoJmJv X2Jhc2UtPnZtX3N0YXR1cykpCj4gICAJCQlsaXN0X2FkZCgmYm9fYmFzZS0+dm1fc3RhdHVzLCAm dm0tPm1vdmVkKTsKPiAtCQlzcGluX3VubG9jaygmYm9fYmFzZS0+dm0tPnN0YXR1c19sb2NrKTsK PiArCQlzcGluX3VubG9jaygmYm9fYmFzZS0+dm0tPm1vdmVkX2xvY2spOwo+ICAgCX0KPiAgIH0K Pgo+IEBAIC0yMzkxLDkgKzIzNjUsOSBAQCBpbnQgYW1kZ3B1X3ZtX2luaXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+ICAgCXZtLT52YSA9IFJCX1JP T1RfQ0FDSEVEOwo+ICAgCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1ZNSFVCUzsgaSsrKQo+ ICAgCQl2bS0+cmVzZXJ2ZWRfdm1pZFtpXSA9IE5VTEw7Cj4gLQlzcGluX2xvY2tfaW5pdCgmdm0t PnN0YXR1c19sb2NrKTsKPiAgIAlJTklUX0xJU1RfSEVBRCgmdm0tPmV2aWN0ZWQpOwo+ICAgCUlO SVRfTElTVF9IRUFEKCZ2bS0+cmVsb2NhdGVkKTsKPiArCXNwaW5fbG9ja19pbml0KCZ2bS0+bW92 ZWRfbG9jayk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJnZtLT5tb3ZlZCk7Cj4gICAJSU5JVF9MSVNU X0hFQUQoJnZtLT5mcmVlZCk7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZtLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0u aAo+IGluZGV4IGQ2ODI3MDgzNTcyYS4uMDE5NmI5YTc4MmYyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPiBAQCAtMTY4LDkgKzE2OCw2IEBAIHN0cnVjdCBhbWRn cHVfdm0gewo+ICAgCS8qIHRyZWUgb2YgdmlydHVhbCBhZGRyZXNzZXMgbWFwcGVkICovCj4gICAJ c3RydWN0IHJiX3Jvb3RfY2FjaGVkCXZhOwo+Cj4gLQkvKiBwcm90ZWN0aW5nIGludmFsaWRhdGVk ICovCj4gLQlzcGlubG9ja190CQlzdGF0dXNfbG9jazsKPiAtCj4gICAJLyogQk9zIHdobyBuZWVk cyBhIHZhbGlkYXRpb24gKi8KPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkCWV2aWN0ZWQ7Cj4KPiBAQCAt MTc5LDYgKzE3Niw3IEBAIHN0cnVjdCBhbWRncHVfdm0gewo+Cj4gICAJLyogQk9zIG1vdmVkLCBi dXQgbm90IHlldCB1cGRhdGVkIGluIHRoZSBQVCAqLwo+ICAgCXN0cnVjdCBsaXN0X2hlYWQJbW92 ZWQ7Cj4gKwlzcGlubG9ja190CQltb3ZlZF9sb2NrOwo+Cj4gICAJLyogQk8gbWFwcGluZ3MgZnJl ZWQsIGJ1dCBub3QgeWV0IHVwZGF0ZWQgaW4gdGhlIFBUICovCj4gICAJc3RydWN0IGxpc3RfaGVh ZAlmcmVlZDsKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK