From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH 6/7] drm/radeon: take VM lock before BO locks Date: Thu, 27 Nov 2014 15:06:26 +0100 Message-ID: <54772FE2.3010607@vodafone.de> References: <1417096126-14859-1-git-send-email-deathsimple@vodafone.de> <1417096126-14859-6-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id CB4206E996 for ; Thu, 27 Nov 2014 06:06:39 -0800 (PST) In-Reply-To: <1417096126-14859-6-git-send-email-deathsimple@vodafone.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: alexdeucher@gmail.com Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QWgsIGNyYXAuIERyb3AgdGhlIGxhc3QgdHdvLCB0aGV5IGFyZSBzdGlsbCB3b3JrIGluIHByb2dy ZXNzLgoKSSB3YXMgb24gdGhlIHdyb25nIGJyYW5jaCB3aGlsZSBzZW5kaW5nIHRoZW0sCkNocmlz dGlhbi4KCkFtIDI3LjExLjIwMTQgdW0gMTQ6NDggc2NocmllYiBDaHJpc3RpYW4gS8O2bmlnOgo+ IEZyb206IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPgo+IFNp Z25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4K PiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggICAgIHwgIDIgKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgIHwgIDkgKysrKystLQo+ICAgZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMgfCAxNyArKysrKysrKysrLS0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fa21zLmMgfCAgNSArKysrCj4gICBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jICB8IDQ3ICsrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgNDQg ZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKPiBpbmRleCAzNjgwY2YwLi42 OTk0NDZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCj4gQEAgLTkyNSw3ICs5MjUsNyBA QCBzdHJ1Y3QgcmFkZW9uX3ZtX2lkIHsKPiAgIH07Cj4gICAKPiAgIHN0cnVjdCByYWRlb25fdm0g ewo+IC0Jc3RydWN0IG11dGV4CQltdXRleDsKPiArCXN0cnVjdCBtdXRleAkJbG9jazsKPiAgIAo+ ICAgCXN0cnVjdCByYl9yb290CQl2YTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3Mu Ywo+IGluZGV4IGZiNzc2Y2IuLjdhOTAzNzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2NzLmMKPiBAQCAtMTk1LDYgKzE5NSw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2NzX3BhcnNlcl9y ZWxvY3Moc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnApCj4gICAJaWYgKHAtPmNzX2ZsYWdzICYg UkFERU9OX0NTX1VTRV9WTSkKPiAgIAkJcC0+dm1fYm9zID0gcmFkZW9uX3ZtX2dldF9ib3MocC0+ cmRldiwgcC0+aWIudm0sCj4gICAJCQkJCSAgICAgICZwLT52YWxpZGF0ZWQpOwo+ICsKPiAgIAlp ZiAobmVlZF9tbWFwX2xvY2spCj4gICAJCWRvd25fcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2Vt KTsKPiAgIAo+IEBAIC01NzEsNyArNTcyLDYgQEAgc3RhdGljIGludCByYWRlb25fY3NfaWJfdm1f Y2h1bmsoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJaWYgKHBhcnNlci0+cmluZyA9 PSBSNjAwX1JJTkdfVFlQRV9VVkRfSU5ERVgpCj4gICAJCXJhZGVvbl91dmRfbm90ZV91c2FnZShy ZGV2KTsKPiAgIAo+IC0JbXV0ZXhfbG9jaygmdm0tPm11dGV4KTsKPiAgIAlyID0gcmFkZW9uX2Jv X3ZtX3VwZGF0ZV9wdGUocGFyc2VyLCB2bSk7Cj4gICAJaWYgKHIpIHsKPiAgIAkJZ290byBvdXQ7 Cj4gQEAgLTU5Miw3ICs1OTIsNiBAQCBzdGF0aWMgaW50IHJhZGVvbl9jc19pYl92bV9jaHVuayhz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAl9Cj4gICAKPiAgIG91dDoKPiAtCW11dGV4 X3VubG9jaygmdm0tPm11dGV4KTsKPiAgIAlyZXR1cm4gcjsKPiAgIH0KPiAgIAo+IEBAIC02OTYs NiArNjk1LDggQEAgaW50IHJhZGVvbl9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCj4gICAJfQo+ICAgCj4gICAJciA9IHJh ZGVvbl9jc19pYl9maWxsKHJkZXYsICZwYXJzZXIpOwo+ICsJaWYgKHBhcnNlci5jc19mbGFncyAm IFJBREVPTl9DU19VU0VfVk0pCj4gKwkJbXV0ZXhfbG9jaygmcGFyc2VyLmliLnZtLT5sb2NrKTsK PiAgIAlpZiAoIXIpIHsKPiAgIAkJciA9IHJhZGVvbl9jc19wYXJzZXJfcmVsb2NzKCZwYXJzZXIp Owo+ICAgCQlpZiAociAmJiByICE9IC1FUkVTVEFSVFNZUykKPiBAQCAtNzA0LDYgKzcwNSw4IEBA IGludCByYWRlb25fY3NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwg c3RydWN0IGRybV9maWxlICpmaWxwKQo+ICAgCj4gICAJaWYgKHIpIHsKPiAgIAkJcmFkZW9uX2Nz X3BhcnNlcl9maW5pKCZwYXJzZXIsIHIsIGZhbHNlKTsKPiArCQlpZiAocGFyc2VyLmNzX2ZsYWdz ICYgUkFERU9OX0NTX1VTRV9WTSkKPiArCQkJbXV0ZXhfdW5sb2NrKCZwYXJzZXIuaWIudm0tPmxv Y2spOwo+ICAgCQl1cF9yZWFkKCZyZGV2LT5leGNsdXNpdmVfbG9jayk7Cj4gICAJCXIgPSByYWRl b25fY3NfaGFuZGxlX2xvY2t1cChyZGV2LCByKTsKPiAgIAkJcmV0dXJuIHI7Cj4gQEAgLTcyMSw2 ICs3MjQsOCBAQCBpbnQgcmFkZW9uX2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKPiAgIAl9Cj4gICBvdXQ6Cj4gICAJcmFk ZW9uX2NzX3BhcnNlcl9maW5pKCZwYXJzZXIsIHIsIHRydWUpOwo+ICsJaWYgKHBhcnNlci5jc19m bGFncyAmIFJBREVPTl9DU19VU0VfVk0pCj4gKwkJbXV0ZXhfdW5sb2NrKCZwYXJzZXIuaWIudm0t PmxvY2spOwo+ICAgCXVwX3JlYWQoJnJkZXYtPmV4Y2x1c2l2ZV9sb2NrKTsKPiAgIAlyID0gcmFk ZW9uX2NzX2hhbmRsZV9sb2NrdXAocmRldiwgcik7Cj4gICAJcmV0dXJuIHI7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fZ2VtLmMKPiBpbmRleCA2MTYyYmQyLi40ZWFmZWM2IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMKPiBAQCAtMTUwLDggKzE1MCwxMCBAQCBpbnQgcmFk ZW9uX2dlbV9vYmplY3Rfb3BlbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaQo+ICAgCQlyZXR1cm4gMDsKPiAgIAl9Cj4gICAKPiArCW11dGV4X2xv Y2soJnZtLT5sb2NrKTsKPiAgIAlyID0gcmFkZW9uX2JvX3Jlc2VydmUocmJvLCBmYWxzZSk7Cj4g ICAJaWYgKHIpIHsKPiArCQltdXRleF91bmxvY2soJnZtLT5sb2NrKTsKPiAgIAkJcmV0dXJuIHI7 Cj4gICAJfQo+ICAgCj4gQEAgLTE2Miw2ICsxNjQsNyBAQCBpbnQgcmFkZW9uX2dlbV9vYmplY3Rf b3BlbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IGRybV9maWxlICpmaWxlX3By aQo+ICAgCQkrK2JvX3ZhLT5yZWZfY291bnQ7Cj4gICAJfQo+ICAgCXJhZGVvbl9ib191bnJlc2Vy dmUocmJvKTsKPiArCW11dGV4X3VubG9jaygmdm0tPmxvY2spOwo+ICAgCj4gICAJcmV0dXJuIDA7 Cj4gICB9Cj4gQEAgLTE4MCw4ICsxODMsMTAgQEAgdm9pZCByYWRlb25fZ2VtX29iamVjdF9jbG9z ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPiAgIAkJcmV0dXJuOwo+ICAgCX0KPiAgIAo+ ICsJbXV0ZXhfbG9jaygmdm0tPmxvY2spOwo+ICAgCXIgPSByYWRlb25fYm9fcmVzZXJ2ZShyYm8s IHRydWUpOwo+ICAgCWlmIChyKSB7Cj4gKwkJbXV0ZXhfdW5sb2NrKCZ2bS0+bG9jayk7Cj4gICAJ CWRldl9lcnIocmRldi0+ZGV2LCAibGVha2luZyBibyB2YSBiZWNhdXNlICIKPiAgIAkJCSJ3ZSBm YWlsIHRvIHJlc2VydmUgYm8gKCVkKVxuIiwgcik7Cj4gICAJCXJldHVybjsKPiBAQCAtMTkzLDYg KzE5OCw3IEBAIHZvaWQgcmFkZW9uX2dlbV9vYmplY3RfY2xvc2Uoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmosCj4gICAJCX0KPiAgIAl9Cj4gICAJcmFkZW9uX2JvX3VucmVzZXJ2ZShyYm8pOwo+ ICsJbXV0ZXhfdW5sb2NrKCZ2bS0+bG9jayk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgcmFk ZW9uX2dlbV9oYW5kbGVfbG9ja3VwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcikK PiBAQCAtNTc2LDE3ICs1ODIsMTMgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2dlbV92YV91cGRhdGVf dm0oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJCQlnb3RvIGVycm9yX3VucmVzZXJ2 ZTsKPiAgIAl9Cj4gICAKPiAtCW11dGV4X2xvY2soJmJvX3ZhLT52bS0+bXV0ZXgpOwo+ICAgCXIg PSByYWRlb25fdm1fY2xlYXJfZnJlZWQocmRldiwgYm9fdmEtPnZtKTsKPiAgIAlpZiAocikKPiAt CQlnb3RvIGVycm9yX3VubG9jazsKPiArCQlnb3RvIGVycm9yX3VucmVzZXJ2ZTsKPiAgIAo+ICAg CWlmIChib192YS0+aXQuc3RhcnQpCj4gICAJCXIgPSByYWRlb25fdm1fYm9fdXBkYXRlKHJkZXYs IGJvX3ZhLCAmYm9fdmEtPmJvLT50Ym8ubWVtKTsKPiAgIAo+IC1lcnJvcl91bmxvY2s6Cj4gLQlt dXRleF91bmxvY2soJmJvX3ZhLT52bS0+bXV0ZXgpOwo+IC0KPiAgIGVycm9yX3VucmVzZXJ2ZToK PiAgIAl0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbigmdGlja2V0LCAmbGlzdCk7Cj4gICAKPiBA QCAtNjYyLDE0ICs2NjQsMTggQEAgaW50IHJhZGVvbl9nZW1fdmFfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJcmV0dXJuIC1FTk9FTlQ7Cj4gICAJfQo+ICAg CXJibyA9IGdlbV90b19yYWRlb25fYm8oZ29iaik7Cj4gKwltdXRleF9sb2NrKCZmcHJpdi0+dm0u bG9jayk7Cj4gICAJciA9IHJhZGVvbl9ib19yZXNlcnZlKHJibywgZmFsc2UpOwo+ICAgCWlmIChy KSB7Cj4gKwkJbXV0ZXhfdW5sb2NrKCZmcHJpdi0+dm0ubG9jayk7Cj4gICAJCWFyZ3MtPm9wZXJh dGlvbiA9IFJBREVPTl9WQV9SRVNVTFRfRVJST1I7Cj4gICAJCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlX3VubG9ja2VkKGdvYmopOwo+ICAgCQlyZXR1cm4gcjsKPiAgIAl9Cj4gICAJYm9fdmEg PSByYWRlb25fdm1fYm9fZmluZCgmZnByaXYtPnZtLCByYm8pOwo+ICAgCWlmICghYm9fdmEpIHsK PiArCQlyYWRlb25fYm9fdW5yZXNlcnZlKHJibyk7Cj4gKwkJbXV0ZXhfdW5sb2NrKCZmcHJpdi0+ dm0ubG9jayk7Cj4gICAJCWFyZ3MtPm9wZXJhdGlvbiA9IFJBREVPTl9WQV9SRVNVTFRfRVJST1I7 Cj4gICAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGdvYmopOwo+ICAgCQly ZXR1cm4gLUVOT0VOVDsKPiBAQCAtNjk4LDYgKzcwNCw3IEBAIGludCByYWRlb25fZ2VtX3ZhX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCWFyZ3MtPm9wZXJh dGlvbiA9IFJBREVPTl9WQV9SRVNVTFRfRVJST1I7Cj4gICAJfQo+ICAgb3V0Ogo+ICsJbXV0ZXhf dW5sb2NrKCZmcHJpdi0+dm0ubG9jayk7Cj4gICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Vf dW5sb2NrZWQoZ29iaik7Cj4gICAJcmV0dXJuIHI7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fa21zLmMKPiBpbmRleCBmNGRkMjZhLi5kOTk0MDA2IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fa21zLmMKPiBAQCAtNjEzLDggKzYxMywxMCBAQCBpbnQgcmFkZW9uX2RyaXZl cl9vcGVuX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdikKPiAgIAkJfQo+ICAgCj4gICAJCWlmIChyZGV2LT5hY2NlbF93b3JraW5nKSB7Cj4gKwkJ CW11dGV4X2xvY2soJnZtLT5sb2NrKTsKPiAgIAkJCXIgPSByYWRlb25fYm9fcmVzZXJ2ZShyZGV2 LT5yaW5nX3RtcF9iby5ibywgZmFsc2UpOwo+ICAgCQkJaWYgKHIpIHsKPiArCQkJCW11dGV4X3Vu bG9jaygmdm0tPmxvY2spOwo+ICAgCQkJCXJhZGVvbl92bV9maW5pKHJkZXYsIHZtKTsKPiAgIAkJ CQlrZnJlZShmcHJpdik7Cj4gICAJCQkJcmV0dXJuIHI7Cj4gQEAgLTYyOCw2ICs2MzAsNyBAQCBp bnQgcmFkZW9uX2RyaXZlcl9vcGVuX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgIAkJCQkJCSAgUkFERU9OX1ZBX0lCX09GRlNFVCwKPiAg IAkJCQkJCSAgUkFERU9OX1ZNX1BBR0VfUkVBREFCTEUgfAo+ICAgCQkJCQkJICBSQURFT05fVk1f UEFHRV9TTk9PUEVEKTsKPiArCQkJbXV0ZXhfdW5sb2NrKCZ2bS0+bG9jayk7Cj4gICAJCQlpZiAo cikgewo+ICAgCQkJCXJhZGVvbl92bV9maW5pKHJkZXYsIHZtKTsKPiAgIAkJCQlrZnJlZShmcHJp dik7Cj4gQEAgLTY2MiwxMiArNjY1LDE0IEBAIHZvaWQgcmFkZW9uX2RyaXZlcl9wb3N0Y2xvc2Vf a21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCWludCByOwo+ICAgCj4gICAJCWlmIChy ZGV2LT5hY2NlbF93b3JraW5nKSB7Cj4gKwkJCW11dGV4X2xvY2soJnZtLT5sb2NrKTsKPiAgIAkJ CXIgPSByYWRlb25fYm9fcmVzZXJ2ZShyZGV2LT5yaW5nX3RtcF9iby5ibywgZmFsc2UpOwo+ICAg CQkJaWYgKCFyKSB7Cj4gICAJCQkJaWYgKHZtLT5pYl9ib192YSkKPiAgIAkJCQkJcmFkZW9uX3Zt X2JvX3JtdihyZGV2LCB2bS0+aWJfYm9fdmEpOwo+ICAgCQkJCXJhZGVvbl9ib191bnJlc2VydmUo cmRldi0+cmluZ190bXBfYm8uYm8pOwo+ICAgCQkJfQo+ICsJCQltdXRleF91bmxvY2soJnZtLT5s b2NrKTsKPiAgIAkJfQo+ICAgCj4gICAJCXJhZGVvbl92bV9maW5pKHJkZXYsIHZtKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMKPiBpbmRleCBjZGU0OGM0Li42NTgxODNmIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jCj4gQEAgLTE3Miw3ICsxNzIsNyBAQCBzdHJ1Y3Qg cmFkZW9uX2JvX2xpc3QgKnJhZGVvbl92bV9nZXRfYm9zKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LAo+ICAgICogQWxsb2NhdGUgYW4gaWQgZm9yIHRoZSB2bSAoY2F5bWFuKykuCj4gICAgKiBS ZXR1cm5zIHRoZSBmZW5jZSB3ZSBuZWVkIHRvIHN5bmMgdG8gKGlmIGFueSkuCj4gICAgKgo+IC0g KiBHbG9iYWwgYW5kIGxvY2FsIG11dGV4IG11c3QgYmUgbG9ja2VkIQo+ICsgKiBNdXRleCBtdXN0 IGJlIGxvY2tlZCEKPiAgICAqLwo+ICAgc3RydWN0IHJhZGVvbl9mZW5jZSAqcmFkZW9uX3ZtX2dy YWJfaWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJCQkJICAgICAgIHN0cnVjdCBy YWRlb25fdm0gKnZtLCBpbnQgcmluZykKPiBAQCAtMjMxLDcgKzIzMSw3IEBAIHN0cnVjdCByYWRl b25fZmVuY2UgKnJhZGVvbl92bV9ncmFiX2lkKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ ICAgICoKPiAgICAqIEZsdXNoIHRoZSB2bSAoY2F5bWFuKykuCj4gICAgKgo+IC0gKiBHbG9iYWwg YW5kIGxvY2FsIG11dGV4IG11c3QgYmUgbG9ja2VkIQo+ICsgKiBNdXRleCBtdXN0IGJlIGxvY2tl ZCEKPiAgICAqLwo+ICAgdm9pZCByYWRlb25fdm1fZmx1c2goc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsCj4gICAJCSAgICAgc3RydWN0IHJhZGVvbl92bSAqdm0sCj4gQEAgLTI2Myw3ICsyNjMs NyBAQCB2b2lkIHJhZGVvbl92bV9mbHVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAg ICAqIEZlbmNlIHRoZSB2bSAoY2F5bWFuKykuCj4gICAgKiBTZXQgdGhlIGZlbmNlIHVzZWQgdG8g cHJvdGVjdCBwYWdlIHRhYmxlIGFuZCBpZC4KPiAgICAqCj4gLSAqIEdsb2JhbCBhbmQgbG9jYWwg bXV0ZXggbXVzdCBiZSBsb2NrZWQhCj4gKyAqIE11dGV4IG11c3QgYmUgbG9ja2VkIQo+ICAgICov Cj4gICB2b2lkIHJhZGVvbl92bV9mZW5jZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAg IAkJICAgICBzdHJ1Y3QgcmFkZW9uX3ZtICp2bSwKPiBAQCAtMzE0LDcgKzMxNCw3IEBAIHN0cnVj dCByYWRlb25fYm9fdmEgKnJhZGVvbl92bV9ib19maW5kKHN0cnVjdCByYWRlb25fdm0gKnZtLAo+ ICAgICogQWRkIEBibyB0byB0aGUgbGlzdCBvZiBib3MgYXNzb2NpYXRlZCB3aXRoIHRoZSB2bQo+ ICAgICogUmV0dXJucyBuZXdseSBhZGRlZCBib192YSBvciBOVUxMIGZvciBmYWlsdXJlCj4gICAg Kgo+IC0gKiBPYmplY3QgaGFzIHRvIGJlIHJlc2VydmVkIQo+ICsgKiBNdXRleCBtdXN0IGJlIGxv Y2tlZCBhbmQgb2JqZWN0IGhhcyB0byBiZSByZXNlcnZlZCEKPiAgICAqLwo+ICAgc3RydWN0IHJh ZGVvbl9ib192YSAqcmFkZW9uX3ZtX2JvX2FkZChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwK PiAgIAkJCQkgICAgICBzdHJ1Y3QgcmFkZW9uX3ZtICp2bSwKPiBAQCAtMzM2LDkgKzMzNiw3IEBA IHN0cnVjdCByYWRlb25fYm9fdmEgKnJhZGVvbl92bV9ib19hZGQoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsCj4gICAJSU5JVF9MSVNUX0hFQUQoJmJvX3ZhLT5ib19saXN0KTsKPiAgIAlJTklU X0xJU1RfSEVBRCgmYm9fdmEtPnZtX3N0YXR1cyk7Cj4gICAKPiAtCW11dGV4X2xvY2soJnZtLT5t dXRleCk7Cj4gICAJbGlzdF9hZGRfdGFpbCgmYm9fdmEtPmJvX2xpc3QsICZiby0+dmEpOwo+IC0J bXV0ZXhfdW5sb2NrKCZ2bS0+bXV0ZXgpOwo+ICAgCj4gICAJcmV0dXJuIGJvX3ZhOwo+ICAgfQo+ IEBAIC00NDEsNyArNDM5LDggQEAgZXJyb3JfdW5yZXNlcnZlOgo+ICAgICogVmFsaWRhdGUgYW5k IHNldCB0aGUgb2Zmc2V0IHJlcXVlc3RlZCB3aXRoaW4gdGhlIHZtIGFkZHJlc3Mgc3BhY2UuCj4g ICAgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MsIGVycm9yIGZvciBmYWlsdXJlLgo+ICAgICoKPiAt ICogT2JqZWN0IGhhcyB0byBiZSByZXNlcnZlZCBhbmQgZ2V0cyB1bnJlc2VydmVkIGJ5IHRoaXMg ZnVuY3Rpb24hCj4gKyAqIE11dGV4IG11c3QgYmUgbG9ja2VkIGFuZCBvYmplY3QgaGFzIHRvIGJl IHJlc2VydmVkIGFuZCBnZXRzCj4gKyAqIHVucmVzZXJ2ZWQgYnkgdGhpcyBmdW5jdGlvbiEKPiAg ICAqLwo+ICAgaW50IHJhZGVvbl92bV9ib19zZXRfYWRkcihzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwKPiAgIAkJCSAgc3RydWN0IHJhZGVvbl9ib192YSAqYm9fdmEsCj4gQEAgLTQ3MiwxNCAr NDcxLDEyIEBAIGludCByYWRlb25fdm1fYm9fc2V0X2FkZHIoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsCj4gICAJCWVvZmZzZXQgPSBsYXN0X3BmbiA9IDA7Cj4gICAJfQo+ICAgCj4gLQltdXRl eF9sb2NrKCZ2bS0+bXV0ZXgpOwo+ICAgCWlmIChib192YS0+aXQuc3RhcnQgfHwgYm9fdmEtPml0 Lmxhc3QpIHsKPiAgIAkJaWYgKGJvX3ZhLT5hZGRyKSB7Cj4gICAJCQkvKiBhZGQgYSBjbG9uZSBv ZiB0aGUgYm9fdmEgdG8gY2xlYXIgdGhlIG9sZCBhZGRyZXNzICovCj4gICAJCQlzdHJ1Y3QgcmFk ZW9uX2JvX3ZhICp0bXA7Cj4gICAJCQl0bXAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmFkZW9u X2JvX3ZhKSwgR0ZQX0tFUk5FTCk7Cj4gICAJCQlpZiAoIXRtcCkgewo+IC0JCQkJbXV0ZXhfdW5s b2NrKCZ2bS0+bXV0ZXgpOwo+ICAgCQkJCXJldHVybiAtRU5PTUVNOwo+ICAgCQkJfQo+ICAgCQkJ dG1wLT5pdC5zdGFydCA9IGJvX3ZhLT5pdC5zdGFydDsKPiBAQCAtNTA5LDcgKzUwNiw2IEBAIGlu dCByYWRlb25fdm1fYm9fc2V0X2FkZHIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJ CQlkZXZfZXJyKHJkZXYtPmRldiwgImJvICVwIHZhIDB4JTAxMEx4IGNvbmZsaWN0IHdpdGggIgo+ ICAgCQkJCSIoYm8gJXAgMHglMDEwbHggMHglMDEwbHgpXG4iLCBib192YS0+Ym8sCj4gICAJCQkJ c29mZnNldCwgdG1wLT5ibywgdG1wLT5pdC5zdGFydCwgdG1wLT5pdC5sYXN0KTsKPiAtCQkJbXV0 ZXhfdW5sb2NrKCZ2bS0+bXV0ZXgpOwo+ICAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gICAJCX0KPiAg IAkJYm9fdmEtPml0LnN0YXJ0ID0gc29mZnNldDsKPiBAQCAtNTM3LDkgKzUzMyw2IEBAIGludCBy YWRlb25fdm1fYm9fc2V0X2FkZHIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJCWlm ICh2bS0+cGFnZV90YWJsZXNbcHRfaWR4XS5ibykKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gLQkJ LyogZHJvcCBtdXRleCB0byBhbGxvY2F0ZSBhbmQgY2xlYXIgcGFnZSB0YWJsZSAqLwo+IC0JCW11 dGV4X3VubG9jaygmdm0tPm11dGV4KTsKPiAtCj4gICAJCXIgPSByYWRlb25fYm9fY3JlYXRlKHJk ZXYsIFJBREVPTl9WTV9QVEVfQ09VTlQgKiA4LAo+ICAgCQkJCSAgICAgUkFERU9OX0dQVV9QQUdF X1NJWkUsIHRydWUsCj4gICAJCQkJICAgICBSQURFT05fR0VNX0RPTUFJTl9WUkFNLCAwLAo+IEBA IC01NTQsMjEgKzU0NywxMCBAQCBpbnQgcmFkZW9uX3ZtX2JvX3NldF9hZGRyKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LAo+ICAgCQkJcmV0dXJuIHI7Cj4gICAJCX0KPiAgIAo+IC0JCS8qIGFx dWlyZSBtdXRleCBhZ2FpbiAqLwo+IC0JCW11dGV4X2xvY2soJnZtLT5tdXRleCk7Cj4gLQkJaWYg KHZtLT5wYWdlX3RhYmxlc1twdF9pZHhdLmJvKSB7Cj4gLQkJCS8qIHNvbWVvbmUgZWxzZSBhbGxv Y2F0ZWQgdGhlIHB0IGluIHRoZSBtZWFudGltZSAqLwo+IC0JCQltdXRleF91bmxvY2soJnZtLT5t dXRleCk7Cj4gLQkJCXJhZGVvbl9ib191bnJlZigmcHQpOwo+IC0JCQltdXRleF9sb2NrKCZ2bS0+ bXV0ZXgpOwo+IC0JCQljb250aW51ZTsKPiAtCQl9Cj4gLQo+ICAgCQl2bS0+cGFnZV90YWJsZXNb cHRfaWR4XS5hZGRyID0gMDsKPiAgIAkJdm0tPnBhZ2VfdGFibGVzW3B0X2lkeF0uYm8gPSBwdDsK PiAgIAl9Cj4gICAKPiAtCW11dGV4X3VubG9jaygmdm0tPm11dGV4KTsKPiAgIAlyZXR1cm4gMDsK PiAgIH0KPiAgIAo+IEBAIC02MjcsNyArNjA5LDcgQEAgc3RhdGljIHVpbnQzMl90IHJhZGVvbl92 bV9wYWdlX2ZsYWdzKHVpbnQzMl90IGZsYWdzKQo+ICAgICogYW5kIHVwZGF0ZXMgdGhlIHBhZ2Ug ZGlyZWN0b3J5IChjYXltYW4rKS4KPiAgICAqIFJldHVybnMgMCBmb3Igc3VjY2VzcywgZXJyb3Ig Zm9yIGZhaWx1cmUuCj4gICAgKgo+IC0gKiBHbG9iYWwgYW5kIGxvY2FsIG11dGV4IG11c3QgYmUg bG9ja2VkIQo+ICsgKiBNdXRleCBtdXN0IGJlIGxvY2tlZCEKPiAgICAqLwo+ICAgaW50IHJhZGVv bl92bV91cGRhdGVfcGFnZV9kaXJlY3Rvcnkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4g ICAJCQkJICAgIHN0cnVjdCByYWRlb25fdm0gKnZtKQo+IEBAIC03MTcsOCArNjk5LDYgQEAgaW50 IHJhZGVvbl92bV91cGRhdGVfcGFnZV9kaXJlY3Rvcnkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCj4gICAgKiBAcGVfZW5kOiBsYXN0IFBURSB0byBoYW5kbGUKPiAgICAqIEBhZGRyOiBhZGRy IHRob3NlIFBURXMgc2hvdWxkIHBvaW50IHRvCj4gICAgKiBAZmxhZ3M6IGh3IG1hcHBpbmcgZmxh Z3MKPiAtICoKPiAtICogR2xvYmFsIGFuZCBsb2NhbCBtdXRleCBtdXN0IGJlIGxvY2tlZCEKPiAg ICAqLwo+ICAgc3RhdGljIHZvaWQgcmFkZW9uX3ZtX2ZyYWdfcHRlcyhzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwKPiAgIAkJCQlzdHJ1Y3QgcmFkZW9uX2liICppYiwKPiBAQCAtNzk4LDcgKzc3 OCw2IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl92bV9mcmFnX3B0ZXMoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsCj4gICAgKgo+ICAgICogVXBkYXRlIHRoZSBwYWdlIHRhYmxlcyBpbiB0aGUgcmFu Z2UgQHN0YXJ0IC0gQGVuZCAoY2F5bWFuKykuCj4gICAgKgo+IC0gKiBHbG9iYWwgYW5kIGxvY2Fs IG11dGV4IG11c3QgYmUgbG9ja2VkIQo+ICAgICovCj4gICBzdGF0aWMgaW50IHJhZGVvbl92bV91 cGRhdGVfcHRlcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAkJCQkgc3RydWN0IHJh ZGVvbl92bSAqdm0sCj4gQEAgLTg3MCw3ICs4NDksNiBAQCBzdGF0aWMgaW50IHJhZGVvbl92bV91 cGRhdGVfcHRlcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAgICAqCj4gICAgKiBGZW5j ZSB0aGUgcGFnZSB0YWJsZXMgaW4gdGhlIHJhbmdlIEBzdGFydCAtIEBlbmQgKGNheW1hbispLgo+ ICAgICoKPiAtICogR2xvYmFsIGFuZCBsb2NhbCBtdXRleCBtdXN0IGJlIGxvY2tlZCEKPiAgICAq Lwo+ICAgc3RhdGljIHZvaWQgcmFkZW9uX3ZtX2ZlbmNlX3B0cyhzdHJ1Y3QgcmFkZW9uX3ZtICp2 bSwKPiAgIAkJCQl1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kLAo+IEBAIC04OTYsNyArODc0 LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX3ZtX2ZlbmNlX3B0cyhzdHJ1Y3QgcmFkZW9uX3ZtICp2 bSwKPiAgICAqIEZpbGwgaW4gdGhlIHBhZ2UgdGFibGUgZW50cmllcyBmb3IgQGJvIChjYXltYW4r KS4KPiAgICAqIFJldHVybnMgMCBmb3Igc3VjY2VzcywgLUVJTlZBTCBmb3IgZmFpbHVyZS4KPiAg ICAqCj4gLSAqIE9iamVjdCBoYXZlIHRvIGJlIHJlc2VydmVkIGFuZCBtdXRleCBtdXN0IGJlIGxv Y2tlZCEKPiArICogTXV0ZXggbXVzdCBiZSBsb2NrZWQgYW5kIEJPcyBoYXZlIHRvIGJlIHJlc2Vy dmVkIQo+ICAgICovCj4gICBpbnQgcmFkZW9uX3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwKPiAgIAkJCXN0cnVjdCByYWRlb25fYm9fdmEgKmJvX3ZhLAo+IEBAIC0xMDk3 LDcgKzEwNzUsNyBAQCBpbnQgcmFkZW9uX3ZtX2NsZWFyX2ludmFsaWRzKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAo+ICAgICoKPiAgICAqIFJlbW92ZSBAYm9fdmEtPmJvIGZyb20gdGhlIHJl cXVlc3RlZCB2bSAoY2F5bWFuKykuCj4gICAgKgo+IC0gKiBPYmplY3QgaGF2ZSB0byBiZSByZXNl cnZlZCEKPiArICogTXV0ZXggbXVzdCBiZSBsb2NrZWQgYW5kIG9iamVjdCBoYXMgdG8gYmUgcmVz ZXJ2ZWQhCj4gICAgKi8KPiAgIHZvaWQgcmFkZW9uX3ZtX2JvX3JtdihzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwKPiAgIAkJICAgICAgc3RydWN0IHJhZGVvbl9ib192YSAqYm9fdmEpCj4gQEAg LTExMDYsNyArMTA4NCw2IEBAIHZvaWQgcmFkZW9uX3ZtX2JvX3JtdihzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwKPiAgIAo+ICAgCWxpc3RfZGVsKCZib192YS0+Ym9fbGlzdCk7Cj4gICAKPiAt CW11dGV4X2xvY2soJnZtLT5tdXRleCk7Cj4gICAJaW50ZXJ2YWxfdHJlZV9yZW1vdmUoJmJvX3Zh LT5pdCwgJnZtLT52YSk7Cj4gICAJc3Bpbl9sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+ICAgCWxp c3RfZGVsKCZib192YS0+dm1fc3RhdHVzKTsKPiBAQCAtMTExOSw4ICsxMDk2LDYgQEAgdm9pZCBy YWRlb25fdm1fYm9fcm12KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQlrZnJlZShi b192YSk7Cj4gICAJfQo+ICAgCXNwaW5fdW5sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOwo+IC0KPiAt CW11dGV4X3VubG9jaygmdm0tPm11dGV4KTsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gQEAgLTExNjgs NyArMTE0Myw3IEBAIGludCByYWRlb25fdm1faW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwgc3RydWN0IHJhZGVvbl92bSAqdm0pCj4gICAJCXZtLT5pZHNbaV0uZmx1c2hlZF91cGRhdGVz ID0gTlVMTDsKPiAgIAkJdm0tPmlkc1tpXS5sYXN0X2lkX3VzZSA9IE5VTEw7Cj4gICAJfQo+IC0J bXV0ZXhfaW5pdCgmdm0tPm11dGV4KTsKPiArCW11dGV4X2luaXQoJnZtLT5sb2NrKTsKPiAgIAl2 bS0+dmEgPSBSQl9ST09UOwo+ICAgCXNwaW5fbG9ja19pbml0KCZ2bS0+c3RhdHVzX2xvY2spOwo+ ICAgCUlOSVRfTElTVF9IRUFEKCZ2bS0+aW52YWxpZGF0ZWQpOwo+IEBAIC0xMjQ1LDUgKzEyMjAs NSBAQCB2b2lkIHJhZGVvbl92bV9maW5pKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1 Y3QgcmFkZW9uX3ZtICp2bSkKPiAgIAkJcmFkZW9uX2ZlbmNlX3VucmVmKCZ2bS0+aWRzW2ldLmxh c3RfaWRfdXNlKTsKPiAgIAl9Cj4gICAKPiAtCW11dGV4X2Rlc3Ryb3koJnZtLT5tdXRleCk7Cj4g KwltdXRleF9kZXN0cm95KCZ2bS0+bG9jayk7Cj4gICB9CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=