From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH 08/21] drm/i915/gtt: Introduce struct i915_page_dma Date: Tue, 02 Jun 2015 13:39:29 +0100 Message-ID: <556DA401.90801@intel.com> References: <1432314314-23530-1-git-send-email-mika.kuoppala@intel.com> <1432314314-23530-9-git-send-email-mika.kuoppala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 0EEDC6E5D8 for ; Tue, 2 Jun 2015 05:39:31 -0700 (PDT) In-Reply-To: <1432314314-23530-9-git-send-email-mika.kuoppala@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kuoppala , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gNS8yMi8yMDE1IDY6MDUgUE0sIE1pa2EgS3VvcHBhbGEgd3JvdGU6Cj4gQWxsIG91ciBwYWdp bmcgc3RydWN0dXJlcyBoYXZlIHN0cnVjdCBwYWdlIGFuZCBkbWEgYWRkcmVzcwo+IGZvciB0aGF0 IHBhZ2UuCj4KPiBBZGQgc3RydWN0IGZvciBwYWdlL2RtYSBhZGRyZXNzIHBhaXJzIGFuZCB1c2Ug aXQgdG8gbWFrZQo+IHRoZSBzZXR1cCBhbmQgdGVhcmRvd24gZm9yIGRpZmZlcmVudCBwYWdpbmcg c3RydWN0dXJlcwo+IGlkZW50aWNhbC4KPgo+IEluY2x1ZGUgdGhlIHBhZ2UgZGlyZWN0b3J5IG9m ZnNldCBhbHNvIGluIHRoZSBzdHJ1Y3QgZm9yIGxlZ2FjeQo+IGdlbnMuIFJlbmFtZSBpdCB0byBj bGVhcmx5IHBvaW50IG91dCB0aGF0IGl0IGlzIG9mZnNldCBpbnRvIHRoZQo+IGdndHQuCj4KPiBT aWduZWQtb2ZmLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KPiAt LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgICAyICstCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyB8IDEyMCArKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5oIHwgIDIxICsrKystLS0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwg ODMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4 IGM3YTg0MGIuLjIyNzcwYWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ IEBAIC0yMjQ1LDcgKzIyNDUsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2luZm8oc3RydWN0 IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgICAgICAgICAgICAgICAg c3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0 Owo+Cj4gICAgICAgICAgICAgICAgICBzZXFfcHV0cyhtLCAiYWxpYXNpbmcgUFBHVFQ6XG4iKTsK PiAtICAgICAgICAgICAgICAgc2VxX3ByaW50ZihtLCAicGQgZ3R0IG9mZnNldDogMHglMDh4XG4i LCBwcGd0dC0+cGQucGRfb2Zmc2V0KTsKPiArICAgICAgICAgICAgICAgc2VxX3ByaW50ZihtLCAi cGQgZ3R0IG9mZnNldDogMHglMDh4XG4iLCBwcGd0dC0+cGQuYmFzZS5nZ3R0X29mZnNldCk7Cj4K PiAgICAgICAgICAgICAgICAgIHBwZ3R0LT5kZWJ1Z19kdW1wKHBwZ3R0LCBtKTsKPiAgICAgICAg ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCAxODk4OWY3Li4xZTFh N2ExIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAtMzAxLDUyICsz MDEsMzkgQEAgc3RhdGljIGdlbjZfcHRlX3QgaXJpc19wdGVfZW5jb2RlKGRtYV9hZGRyX3QgYWRk ciwKPiAgICAgICAgICByZXR1cm4gcHRlOwo+ICAgfQo+Cj4gLSNkZWZpbmUgaTkxNV9kbWFfdW5t YXBfc2luZ2xlKHB4LCBkZXYpIFwKPiAtICAgICAgIF9faTkxNV9kbWFfdW5tYXBfc2luZ2xlKChw eCktPmRhZGRyLCBkZXYpCj4gLQo+IC1zdGF0aWMgdm9pZCBfX2k5MTVfZG1hX3VubWFwX3Npbmds ZShkbWFfYWRkcl90IGRhZGRyLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3N0YXRpYyBpbnQgc2V0dXBfcGFnZV9kbWEoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnApCj4gICB7Cj4gICAg ICAgICAgc3RydWN0IGRldmljZSAqZGV2aWNlID0gJmRldi0+cGRldi0+ZGV2Owo+Cj4gLSAgICAg ICBkbWFfdW5tYXBfcGFnZShkZXZpY2UsIGRhZGRyLCA0MDk2LCBQQ0lfRE1BX0JJRElSRUNUSU9O QUwpOwo+IC19Cj4gLQo+IC0vKioKPiAtICogaTkxNV9kbWFfbWFwX3NpbmdsZSgpIC0gQ3JlYXRl IGEgZG1hIG1hcHBpbmcgZm9yIGEgcGFnZSB0YWJsZS9kaXIvZXRjLgo+IC0gKiBAcHg6ICAgICAg ICBQYWdlIHRhYmxlL2Rpci9ldGMgdG8gZ2V0IGEgRE1BIG1hcCBmb3IKPiAtICogQGRldjogICAg ICAgZHJtIGRldmljZQo+IC0gKgo+IC0gKiBQYWdlIHRhYmxlIGFsbG9jYXRpb25zIGFyZSB1bmlm aWVkIGFjcm9zcyBhbGwgZ2Vucy4gVGhleSBhbHdheXMgcmVxdWlyZSBhCj4gLSAqIHNpbmdsZSA0 ayBhbGxvY2F0aW9uLCBhcyB3ZWxsIGFzIGEgRE1BIG1hcHBpbmcuIElmIHdlIGtlZXAgdGhlIHN0 cnVjdHMKPiAtICogc3ltbWV0cmljIGhlcmUsIHRoZSBzaW1wbGUgbWFjcm8gY292ZXJzIHVzIGZv ciBldmVyeSBwYWdlIHRhYmxlIHR5cGUuCj4gLSAqCj4gLSAqIFJldHVybjogMCBpZiBzdWNjZXNz Lgo+IC0gKi8KPiAtI2RlZmluZSBpOTE1X2RtYV9tYXBfc2luZ2xlKHB4LCBkZXYpIFwKPiAtICAg ICAgIGk5MTVfZG1hX21hcF9wYWdlX3NpbmdsZSgocHgpLT5wYWdlLCAoZGV2KSwgJihweCktPmRh ZGRyKQo+ICsgICAgICAgcC0+cGFnZSA9IGFsbG9jX3BhZ2UoR0ZQX0tFUk5FTCk7Cj4gKyAgICAg ICBpZiAoIXAtPnBhZ2UpCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+Cj4gLXN0 YXRpYyBpbnQgaTkxNV9kbWFfbWFwX3BhZ2Vfc2luZ2xlKHN0cnVjdCBwYWdlICpwYWdlLAo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hX2FkZHJfdCAqZGFkZHIp Cj4gLXsKPiAtICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldmljZSA9ICZkZXYtPnBkZXYtPmRldjsK PiArICAgICAgIHAtPmRhZGRyID0gZG1hX21hcF9wYWdlKGRldmljZSwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHAtPnBhZ2UsIDAsIDQwOTYsIFBDSV9ETUFfQklESVJFQ1RJT05B TCk7Cj4KPiAtICAgICAgICpkYWRkciA9IGRtYV9tYXBfcGFnZShkZXZpY2UsIHBhZ2UsIDAsIDQw OTYsIFBDSV9ETUFfQklESVJFQ1RJT05BTCk7Cj4gLSAgICAgICBpZiAoZG1hX21hcHBpbmdfZXJy b3IoZGV2aWNlLCAqZGFkZHIpKQo+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiAr ICAgICAgIGlmIChkbWFfbWFwcGluZ19lcnJvcihkZXZpY2UsIHAtPmRhZGRyKSkgewo+ICsgICAg ICAgICAgICAgICBfX2ZyZWVfcGFnZShwLT5wYWdlKTsKPiArICAgICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7Cj4gKyAgICAgICB9Cj4KPiAgICAgICAgICByZXR1cm4gMDsKPiAgIH0KPgo+IC1z dGF0aWMgdm9pZCB1bm1hcF9hbmRfZnJlZV9wdChzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCwK PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiArc3RhdGljIHZvaWQgY2xlYW51cF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCkKPiAgIHsKPiAtICAgICAgIGlmIChXQVJOX09OKCFwdC0+ cGFnZSkpCj4gKyAgICAgICBpZiAoV0FSTl9PTighcC0+cGFnZSkpCj4gICAgICAgICAgICAgICAg ICByZXR1cm47Cj4KPiAtICAgICAgIGk5MTVfZG1hX3VubWFwX3NpbmdsZShwdCwgZGV2KTsKPiAt ICAgICAgIF9fZnJlZV9wYWdlKHB0LT5wYWdlKTsKPiArICAgICAgIGRtYV91bm1hcF9wYWdlKCZk ZXYtPnBkZXYtPmRldiwgcC0+ZGFkZHIsIDQwOTYsIFBDSV9ETUFfQklESVJFQ1RJT05BTCk7Cj4g KyAgICAgICBfX2ZyZWVfcGFnZShwLT5wYWdlKTsKPiArICAgICAgIG1lbXNldChwLCAwLCBzaXpl b2YoKnApKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdW5tYXBfYW5kX2ZyZWVfcHQoc3RydWN0 IGk5MTVfcGFnZV90YWJsZSAqcHQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3sKPiArICAgICAgIGNsZWFudXBfcGFnZV9kbWEoZGV2 LCAmcHQtPmJhc2UpOwo+ICAgICAgICAgIGtmcmVlKHB0LT51c2VkX3B0ZXMpOwo+ICAgICAgICAg IGtmcmVlKHB0KTsKPiAgIH0KPiBAQCAtMzU3LDcgKzM0NCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhf aW5pdGlhbGl6ZV9wdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgICAgICAgICBn ZW44X3B0ZV90ICpwdF92YWRkciwgc2NyYXRjaF9wdGU7Cj4gICAgICAgICAgaW50IGk7Cj4KPiAt ICAgICAgIHB0X3ZhZGRyID0ga21hcF9hdG9taWMocHQtPnBhZ2UpOwo+ICsgICAgICAgcHRfdmFk ZHIgPSBrbWFwX2F0b21pYyhwdC0+YmFzZS5wYWdlKTsKPiAgICAgICAgICBzY3JhdGNoX3B0ZSA9 IGdlbjhfcHRlX2VuY29kZSh2bS0+c2NyYXRjaC5hZGRyLAo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEk5MTVfQ0FDSEVfTExDLCB0cnVlKTsKPgo+IEBAIC0zODYsMTkg KzM3MywxMyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqYWxsb2NfcHQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgICAgICAgICBpZiAoIXB0LT51c2VkX3B0ZXMpCj4gICAgICAg ICAgICAgICAgICBnb3RvIGZhaWxfYml0bWFwOwo+Cj4gLSAgICAgICBwdC0+cGFnZSA9IGFsbG9j X3BhZ2UoR0ZQX0tFUk5FTCk7Cj4gLSAgICAgICBpZiAoIXB0LT5wYWdlKQo+IC0gICAgICAgICAg ICAgICBnb3RvIGZhaWxfcGFnZTsKPiAtCj4gLSAgICAgICByZXQgPSBpOTE1X2RtYV9tYXBfc2lu Z2xlKHB0LCBkZXYpOwo+ICsgICAgICAgcmV0ID0gc2V0dXBfcGFnZV9kbWEoZGV2LCAmcHQtPmJh c2UpOwo+ICAgICAgICAgIGlmIChyZXQpCj4gLSAgICAgICAgICAgICAgIGdvdG8gZmFpbF9kbWE7 Cj4gKyAgICAgICAgICAgICAgIGdvdG8gZmFpbF9wYWdlX207Cj4KPiAgICAgICAgICByZXR1cm4g cHQ7Cj4KPiAtZmFpbF9kbWE6Cj4gLSAgICAgICBfX2ZyZWVfcGFnZShwdC0+cGFnZSk7Cj4gLWZh aWxfcGFnZToKPiArZmFpbF9wYWdlX206Cj4gICAgICAgICAga2ZyZWUocHQtPnVzZWRfcHRlcyk7 Cj4gICBmYWlsX2JpdG1hcDoKPiAgICAgICAgICBrZnJlZShwdCk7Cj4gQEAgLTQwOSw5ICszOTAs OCBAQCBmYWlsX2JpdG1hcDoKPiAgIHN0YXRpYyB2b2lkIHVubWFwX2FuZF9mcmVlX3BkKHN0cnVj dCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIHsKPiAtICAgICAgIGlmIChwZC0+cGFnZSkg ewo+IC0gICAgICAgICAgICAgICBpOTE1X2RtYV91bm1hcF9zaW5nbGUocGQsIGRldik7Cj4gLSAg ICAgICAgICAgICAgIF9fZnJlZV9wYWdlKHBkLT5wYWdlKTsKPiArICAgICAgIGlmIChwZC0+YmFz ZS5wYWdlKSB7Cj4gKyAgICAgICAgICAgICAgIGNsZWFudXBfcGFnZV9kbWEoZGV2LCAmcGQtPmJh c2UpOwo+ICAgICAgICAgICAgICAgICAga2ZyZWUocGQtPnVzZWRfcGRlcyk7Cj4gICAgICAgICAg ICAgICAgICBrZnJlZShwZCk7Cj4gICAgICAgICAgfQo+IEBAIC00MzEsMTggKzQxMSwxMiBAQCBz dGF0aWMgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKmFsbG9jX3BkKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gICAgICAgICAgaWYgKCFwZC0+dXNlZF9wZGVzKQo+ICAgICAgICAgICAgICAg ICAgZ290byBmcmVlX3BkOwo+Cj4gLSAgICAgICBwZC0+cGFnZSA9IGFsbG9jX3BhZ2UoR0ZQX0tF Uk5FTCk7Cj4gLSAgICAgICBpZiAoIXBkLT5wYWdlKQo+IC0gICAgICAgICAgICAgICBnb3RvIGZy ZWVfYml0bWFwOwo+IC0KPiAtICAgICAgIHJldCA9IGk5MTVfZG1hX21hcF9zaW5nbGUocGQsIGRl dik7Cj4gKyAgICAgICByZXQgPSBzZXR1cF9wYWdlX2RtYShkZXYsICZwZC0+YmFzZSk7Cj4gICAg ICAgICAgaWYgKHJldCkKPiAtICAgICAgICAgICAgICAgZ290byBmcmVlX3BhZ2U7Cj4gKyAgICAg ICAgICAgICAgIGdvdG8gZnJlZV9iaXRtYXA7Cj4KPiAgICAgICAgICByZXR1cm4gcGQ7Cj4KPiAt ZnJlZV9wYWdlOgo+IC0gICAgICAgX19mcmVlX3BhZ2UocGQtPnBhZ2UpOwo+ICAgZnJlZV9iaXRt YXA6Cj4gICAgICAgICAga2ZyZWUocGQtPnVzZWRfcGRlcyk7Cj4gICBmcmVlX3BkOgo+IEBAIC01 MjMsMTAgKzQ5NywxMCBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3JhbmdlKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+Cj4gICAgICAgICAgICAgICAgICBwdCA9IHBkLT5w YWdlX3RhYmxlW3BkZV07Cj4KPiAtICAgICAgICAgICAgICAgaWYgKFdBUk5fT04oIXB0LT5wYWdl KSkKPiArICAgICAgICAgICAgICAgaWYgKFdBUk5fT04oIXB0LT5iYXNlLnBhZ2UpKQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPgo+IC0gICAgICAgICAgICAgICBwYWdlX3Rh YmxlID0gcHQtPnBhZ2U7Cj4gKyAgICAgICAgICAgICAgIHBhZ2VfdGFibGUgPSBwdC0+YmFzZS5w YWdlOwo+Cj4gICAgICAgICAgICAgICAgICBsYXN0X3B0ZSA9IHB0ZSArIG51bV9lbnRyaWVzOwo+ ICAgICAgICAgICAgICAgICAgaWYgKGxhc3RfcHRlID4gR0VOOF9QVEVTKQo+IEBAIC01NzMsNyAr NTQ3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgICAgICAgICAgICAgICAgIGlmIChwdF92YWRkciA9PSBO VUxMKSB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0 b3J5ICpwZCA9IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4gICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0ID0gcGQtPnBhZ2VfdGFibGVb cGRlXTsKPiAtICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFnZSAqcGFnZV90YWJsZSA9 IHB0LT5wYWdlOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwYWdlICpwYWdlX3Rh YmxlID0gcHQtPmJhc2UucGFnZTsKPgo+ICAgICAgICAgICAgICAgICAgICAgICAgICBwdF92YWRk ciA9IGttYXBfYXRvbWljKHBhZ2VfdGFibGUpOwo+ICAgICAgICAgICAgICAgICAgfQo+IEBAIC02 MDUsNyArNTc5LDcgQEAgc3RhdGljIHZvaWQgX19nZW44X2RvX21hcF9wdChnZW44X3BkZV90ICog Y29uc3QgcGRlLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gICB7Cj4gICAgICAgICAgZ2VuOF9wZGVfdCBlbnRyeSA9Cj4gLSAgICAgICAg ICAgICAgIGdlbjhfcGRlX2VuY29kZShkZXYsIHB0LT5kYWRkciwgSTkxNV9DQUNIRV9MTEMpOwo+ ICsgICAgICAgICAgICAgICBnZW44X3BkZV9lbmNvZGUoZGV2LCBwdC0+YmFzZS5kYWRkciwgSTkx NV9DQUNIRV9MTEMpOwo+ICAgICAgICAgICpwZGUgPSBlbnRyeTsKPiAgIH0KPgo+IEBAIC02MTgs NyArNTkyLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BkKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtLAo+ICAgICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0Owo+ ICAgICAgICAgIGludCBpOwo+Cj4gLSAgICAgICBwYWdlX2RpcmVjdG9yeSA9IGttYXBfYXRvbWlj KHBkLT5wYWdlKTsKPiArICAgICAgIHBhZ2VfZGlyZWN0b3J5ID0ga21hcF9hdG9taWMocGQtPmJh c2UucGFnZSk7Cj4gICAgICAgICAgcHQgPSBwcGd0dC0+c2NyYXRjaF9wdDsKPiAgICAgICAgICBm b3IgKGkgPSAwOyBpIDwgSTkxNV9QREVTOyBpKyspCj4gICAgICAgICAgICAgICAgICAvKiBNYXAg dGhlIFBERSB0byB0aGUgcGFnZSB0YWJsZSAqLwo+IEBAIC02MzMsNyArNjA3LDcgQEAgc3RhdGlj IHZvaWQgZ2VuOF9mcmVlX3BhZ2VfdGFibGVzKHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpw ZCwgc3RydWN0IGRybV9kZXYKPiAgIHsKPiAgICAgICAgICBpbnQgaTsKPgo+IC0gICAgICAgaWYg KCFwZC0+cGFnZSkKPiArICAgICAgIGlmICghcGQtPmJhc2UucGFnZSkKPiAgICAgICAgICAgICAg ICAgIHJldHVybjsKPgo+ICAgICAgICAgIGZvcl9lYWNoX3NldF9iaXQoaSwgcGQtPnVzZWRfcGRl cywgSTkxNV9QREVTKSB7Cj4gQEAgLTg4Myw3ICs4NTcsNyBAQCBzdGF0aWMgaW50IGdlbjhfYWxs b2NfdmFfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAgICAgICAgLyog QWxsb2NhdGlvbnMgaGF2ZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBzbyBzZXQgdGhlIGJpdG1h cHMsIGFuZCBkbwo+ICAgICAgICAgICAqIHRoZSBtYXBwaW5ncy4gKi8KPiAgICAgICAgICBnZW44 X2Zvcl9lYWNoX3BkcGUocGQsICZwcGd0dC0+cGRwLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBwZHBl KSB7Cj4gLSAgICAgICAgICAgICAgIGdlbjhfcGRlX3QgKmNvbnN0IHBhZ2VfZGlyZWN0b3J5ID0g a21hcF9hdG9taWMocGQtPnBhZ2UpOwo+ICsgICAgICAgICAgICAgICBnZW44X3BkZV90ICpjb25z dCBwYWdlX2RpcmVjdG9yeSA9IGttYXBfYXRvbWljKHBkLT5iYXNlLnBhZ2UpOwo+ICAgICAgICAg ICAgICAgICAgc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQ7Cj4gICAgICAgICAgICAgICAgICB1 aW50NjRfdCBwZF9sZW4gPSBnZW44X2NsYW1wX3BkKHN0YXJ0LCBsZW5ndGgpOwo+ICAgICAgICAg ICAgICAgICAgdWludDY0X3QgcGRfc3RhcnQgPSBzdGFydDsKPiBAQCAtMTAzNyw3ICsxMDExLDcg QEAgc3RhdGljIHZvaWQgZ2VuNl9kdW1wX3BwZ3R0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0 dCwgc3RydWN0IHNlcV9maWxlICptKQo+ICAgICAgICAgIGdlbjZfZm9yX2VhY2hfcGRlKHVudXNl ZCwgJnBwZ3R0LT5wZCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRlKSB7Cj4gICAgICAgICAgICAg ICAgICB1MzIgZXhwZWN0ZWQ7Cj4gICAgICAgICAgICAgICAgICBnZW42X3B0ZV90ICpwdF92YWRk cjsKPiAtICAgICAgICAgICAgICAgZG1hX2FkZHJfdCBwdF9hZGRyID0gcHBndHQtPnBkLnBhZ2Vf dGFibGVbcGRlXS0+ZGFkZHI7Cj4gKyAgICAgICAgICAgICAgIGRtYV9hZGRyX3QgcHRfYWRkciA9 IHBwZ3R0LT5wZC5wYWdlX3RhYmxlW3BkZV0tPmJhc2UuZGFkZHI7Cj4gICAgICAgICAgICAgICAg ICBwZF9lbnRyeSA9IHJlYWRsKHBwZ3R0LT5wZF9hZGRyICsgcGRlKTsKPiAgICAgICAgICAgICAg ICAgIGV4cGVjdGVkID0gKEdFTjZfUERFX0FERFJfRU5DT0RFKHB0X2FkZHIpIHwgR0VONl9QREVf VkFMSUQpOwo+Cj4gQEAgLTEwNDgsNyArMTAyMiw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfZHVtcF9w cGd0dChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsIHN0cnVjdCBzZXFfZmlsZSAqbSkKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCk7Cj4gICAgICAgICAg ICAgICAgICBzZXFfcHJpbnRmKG0sICJcdFBERTogJXhcbiIsIHBkX2VudHJ5KTsKPgo+IC0gICAg ICAgICAgICAgICBwdF92YWRkciA9IGttYXBfYXRvbWljKHBwZ3R0LT5wZC5wYWdlX3RhYmxlW3Bk ZV0tPnBhZ2UpOwo+ICsgICAgICAgICAgICAgICBwdF92YWRkciA9IGttYXBfYXRvbWljKHBwZ3R0 LT5wZC5wYWdlX3RhYmxlW3BkZV0tPmJhc2UucGFnZSk7Cj4gICAgICAgICAgICAgICAgICBmb3Ig KHB0ZSA9IDA7IHB0ZSA8IEdFTjZfUFRFUzsgcHRlKz00KSB7Cj4gICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgdmEgPQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChwZGUgKiBQQUdFX1NJWkUgKiBHRU42X1BURVMpICsKPiBAQCAtMTA4Myw3ICsxMDU3LDcg QEAgc3RhdGljIHZvaWQgZ2VuNl93cml0ZV9wZGUoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rvcnkg KnBkLAo+ICAgICAgICAgICAgICAgICAgY29udGFpbmVyX29mKHBkLCBzdHJ1Y3QgaTkxNV9od19w cGd0dCwgcGQpOwo+ICAgICAgICAgIHUzMiBwZF9lbnRyeTsKPgo+IC0gICAgICAgcGRfZW50cnkg PSBHRU42X1BERV9BRERSX0VOQ09ERShwdC0+ZGFkZHIpOwo+ICsgICAgICAgcGRfZW50cnkgPSBH RU42X1BERV9BRERSX0VOQ09ERShwdC0+YmFzZS5kYWRkcik7Cj4gICAgICAgICAgcGRfZW50cnkg fD0gR0VONl9QREVfVkFMSUQ7Cj4KPiAgICAgICAgICB3cml0ZWwocGRfZW50cnksIHBwZ3R0LT5w ZF9hZGRyICsgcGRlKTsKPiBAQCAtMTEwOCw5ICsxMDgyLDkgQEAgc3RhdGljIHZvaWQgZ2VuNl93 cml0ZV9wYWdlX3JhbmdlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPgo+ICAg c3RhdGljIHVpbnQzMl90IGdldF9wZF9vZmZzZXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 KQo+ICAgewo+IC0gICAgICAgQlVHX09OKHBwZ3R0LT5wZC5wZF9vZmZzZXQgJiAweDNmKTsKPiAr ICAgICAgIEJVR19PTihwcGd0dC0+cGQuYmFzZS5nZ3R0X29mZnNldCAmIDB4M2YpOwo+Cj4gLSAg ICAgICByZXR1cm4gKHBwZ3R0LT5wZC5wZF9vZmZzZXQgLyA2NCkgPDwgMTY7Cj4gKyAgICAgICBy ZXR1cm4gKHBwZ3R0LT5wZC5iYXNlLmdndHRfb2Zmc2V0IC8gNjQpIDw8IDE2Owo+ICAgfQo+Cj4g ICBzdGF0aWMgaW50IGhzd19tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+ IEBAIC0xMjczLDcgKzEyNDcsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2NsZWFyX3Jhbmdl KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAgICAgICAgICAgICAgICAgaWYgKGxh c3RfcHRlID4gR0VONl9QVEVTKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3B0ZSA9 IEdFTjZfUFRFUzsKPgo+IC0gICAgICAgICAgICAgICBwdF92YWRkciA9IGttYXBfYXRvbWljKHBw Z3R0LT5wZC5wYWdlX3RhYmxlW2FjdF9wdF0tPnBhZ2UpOwo+ICsgICAgICAgICAgICAgICBwdF92 YWRkciA9IGttYXBfYXRvbWljKHBwZ3R0LT5wZC5wYWdlX3RhYmxlW2FjdF9wdF0tPmJhc2UucGFn ZSk7Cj4KPiAgICAgICAgICAgICAgICAgIGZvciAoaSA9IGZpcnN0X3B0ZTsgaSA8IGxhc3RfcHRl OyBpKyspCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHB0X3ZhZGRyW2ldID0gc2NyYXRjaF9w dGU7Cj4gQEAgLTEzMDIsNyArMTI3Niw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfaW5zZXJ0 X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAgICAgICAgcHRfdmFk ZHIgPSBOVUxMOwo+ICAgICAgICAgIGZvcl9lYWNoX3NnX3BhZ2UocGFnZXMtPnNnbCwgJnNnX2l0 ZXIsIHBhZ2VzLT5uZW50cywgMCkgewo+ICAgICAgICAgICAgICAgICAgaWYgKHB0X3ZhZGRyID09 IE5VTEwpCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhw cGd0dC0+cGQucGFnZV90YWJsZVthY3RfcHRdLT5wYWdlKTsKPiArICAgICAgICAgICAgICAgICAg ICAgICBwdF92YWRkciA9IGttYXBfYXRvbWljKHBwZ3R0LT5wZC5wYWdlX3RhYmxlW2FjdF9wdF0t PmJhc2UucGFnZSk7Cj4KPiAgICAgICAgICAgICAgICAgIHB0X3ZhZGRyW2FjdF9wdGVdID0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgdm0tPnB0ZV9lbmNvZGUoc2dfcGFnZV9pdGVyX2RtYV9h ZGRyZXNzKCZzZ19pdGVyKSwKPiBAQCAtMTMzMCw3ICsxMzA0LDcgQEAgc3RhdGljIHZvaWQgZ2Vu Nl9pbml0aWFsaXplX3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAgICAgICAg IHNjcmF0Y2hfcHRlID0gdm0tPnB0ZV9lbmNvZGUodm0tPnNjcmF0Y2guYWRkciwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgSTkxNV9DQUNIRV9MTEMsIHRydWUsIDApOwo+Cj4gLSAgICAgICBw dF92YWRkciA9IGttYXBfYXRvbWljKHB0LT5wYWdlKTsKPiArICAgICAgIHB0X3ZhZGRyID0ga21h cF9hdG9taWMocHQtPmJhc2UucGFnZSk7Cj4KPiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgR0VO Nl9QVEVTOyBpKyspCj4gICAgICAgICAgICAgICAgICBwdF92YWRkcltpXSA9IHNjcmF0Y2hfcHRl Owo+IEBAIC0xNTQ2LDExICsxNTIwLDExIEBAIHN0YXRpYyBpbnQgZ2VuNl9wcGd0dF9pbml0KHN0 cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKPiAgICAgICAgICBwcGd0dC0+YmFzZS50b3RhbCA9 IEk5MTVfUERFUyAqIEdFTjZfUFRFUyAqIFBBR0VfU0laRTsKPiAgICAgICAgICBwcGd0dC0+ZGVi dWdfZHVtcCA9IGdlbjZfZHVtcF9wcGd0dDsKPgo+IC0gICAgICAgcHBndHQtPnBkLnBkX29mZnNl dCA9Cj4gKyAgICAgICBwcGd0dC0+cGQuYmFzZS5nZ3R0X29mZnNldCA9Cj4gICAgICAgICAgICAg ICAgICBwcGd0dC0+bm9kZS5zdGFydCAvIFBBR0VfU0laRSAqIHNpemVvZihnZW42X3B0ZV90KTsK Pgo+ICAgICAgICAgIHBwZ3R0LT5wZF9hZGRyID0gKGdlbjZfcHRlX3QgX19pb21lbSAqKWRldl9w cml2LT5ndHQuZ3NtICsKPiAtICAgICAgICAgICAgICAgcHBndHQtPnBkLnBkX29mZnNldCAvIHNp emVvZihnZW42X3B0ZV90KTsKPiArICAgICAgICAgICAgICAgcHBndHQtPnBkLmJhc2UuZ2d0dF9v ZmZzZXQgLyBzaXplb2YoZ2VuNl9wdGVfdCk7Cj4KPiAgICAgICAgICBnZW42X3NjcmF0Y2hfdmFf cmFuZ2UocHBndHQsIDAsIHBwZ3R0LT5iYXNlLnRvdGFsKTsKPgo+IEBAIC0xNTYxLDcgKzE1MzUs NyBAQCBzdGF0aWMgaW50IGdlbjZfcHBndHRfaW5pdChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBn dHQpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBwcGd0dC0+bm9kZS5zdGFydCAvIFBBR0Vf U0laRSk7Cj4KPiAgICAgICAgICBEUk1fREVCVUcoIkFkZGluZyBQUEdUVCBhdCBvZmZzZXQgJXhc biIsCj4gLSAgICAgICAgICAgICAgICAgcHBndHQtPnBkLnBkX29mZnNldCA8PCAxMCk7Cj4gKyAg ICAgICAgICAgICAgICAgcHBndHQtPnBkLmJhc2UuZ2d0dF9vZmZzZXQgPDwgMTApOwo+Cj4gICAg ICAgICAgcmV0dXJuIDA7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBp bmRleCBkYTY3NTQyLi42NjZkZWNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmgKPiBAQCAtMjA1LDE5ICsyMDUsMjIgQEAgc3RydWN0IGk5MTVfdm1hIHsKPiAgICNkZWZpbmUg RFJNX0k5MTVfR0VNX09CSkVDVF9NQVhfUElOX0NPVU5UIDB4Zgo+ICAgfTsKPgo+IC1zdHJ1Y3Qg aTkxNV9wYWdlX3RhYmxlIHsKPiArc3RydWN0IGk5MTVfcGFnZV9kbWEgewo+ICAgICAgICAgIHN0 cnVjdCBwYWdlICpwYWdlOwo+IC0gICAgICAgZG1hX2FkZHJfdCBkYWRkcjsKPiArICAgICAgIHVu aW9uIHsKPiArICAgICAgICAgICAgICAgZG1hX2FkZHJfdCBkYWRkcjsKPiArICAgICAgICAgICAg ICAgdWludDMyX3QgZ2d0dF9vZmZzZXQ7CgpNYXliZSBhbHNvIGFkZCBhIGNvbW1lbnQgc2F5aW5n ICJnZW42LzcgLSB0aGlzIGlzIHRoZSBvZmZzZXQgaW50byB0aGUgCkdHVFQgd2hlcmUgdGhlIChj dXJyZW50IGNvbnRleHQncykgUFBHVFQgcGFnZSBkaXJlY3RvcnkgYmVnaW5zIi4KU28gdGhlcmUn cyBubyBkb3VidCB3aGF0IGdndHRfb2Zmc2V0IGlzLgoKPiArICAgICAgIH07Cj4gK307Cj4gKwo+ ICtzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlIHsKPiArICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZG1h IGJhc2U7Cj4KPiAgICAgICAgICB1bnNpZ25lZCBsb25nICp1c2VkX3B0ZXM7Cj4gICB9Owo+Cj4g ICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSB7Cj4gLSAgICAgICBzdHJ1Y3QgcGFnZSAqcGFn ZTsgLyogTlVMTCBmb3IgR0VONi1HRU43ICovCj4gLSAgICAgICB1bmlvbiB7Cj4gLSAgICAgICAg ICAgICAgIHVpbnQzMl90IHBkX29mZnNldDsKPiAtICAgICAgICAgICAgICAgZG1hX2FkZHJfdCBk YWRkcjsKPiAtICAgICAgIH07Cj4gKyAgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSBiYXNlOwo+ Cj4gICAgICAgICAgdW5zaWduZWQgbG9uZyAqdXNlZF9wZGVzOwo+ICAgICAgICAgIHN0cnVjdCBp OTE1X3BhZ2VfdGFibGUgKnBhZ2VfdGFibGVbSTkxNV9QREVTXTsgLyogUERFcyAqLwo+IEBAIC00 NzIsOCArNDc1LDggQEAgc3RhdGljIGlubGluZSBkbWFfYWRkcl90Cj4gICBpOTE1X3BhZ2VfZGly X2RtYV9hZGRyKGNvbnN0IHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwgY29uc3QgdW5zaWdu ZWQgbikKPiAgIHsKPiAgICAgICAgICByZXR1cm4gdGVzdF9iaXQobiwgcHBndHQtPnBkcC51c2Vk X3BkcGVzKSA/Cj4gLSAgICAgICAgICAgICAgIHBwZ3R0LT5wZHAucGFnZV9kaXJlY3Rvcnlbbl0t PmRhZGRyIDoKPiAtICAgICAgICAgICAgICAgcHBndHQtPnNjcmF0Y2hfcGQtPmRhZGRyOwo+ICsg ICAgICAgICAgICAgICBwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W25dLT5iYXNlLmRhZGRyIDoK PiArICAgICAgICAgICAgICAgcHBndHQtPnNjcmF0Y2hfcGQtPmJhc2UuZGFkZHI7Cj4gICB9Cj4K PiAgIGludCBpOTE1X2dlbV9ndHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAtLQo+ IDEuOS4xCj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==