From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Dai Subject: Re: [RFC 2/5] drm/i915: Unify execlist and legacy request life-cycles Date: Thu, 09 Jul 2015 09:54:59 -0700 Message-ID: <559EA763.80109@intel.com> References: <1436439464-17122-1-git-send-email-nicholas.hoath@intel.com> <1436439464-17122-2-git-send-email-nicholas.hoath@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 4370B6E553 for ; Thu, 9 Jul 2015 09:56:19 -0700 (PDT) In-Reply-To: <1436439464-17122-2-git-send-email-nicholas.hoath@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Nick Hoath , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwNy8wOS8yMDE1IDAzOjU3IEFNLCBOaWNrIEhvYXRoIHdyb3RlOgo+IFRoZXJlIGlzIGEg ZGVzaXJlIHRvIHNpbXBsaWZ5IHRoZSBpOTE1IGRyaXZlciBieSByZWR1Y2luZyB0aGUgbnVtYmVy IG9mCj4gZGlmZmVyZW50IGNvZGUgcGF0aHMgaW50cm9kdWNlZCBieSB0aGUgTFJDIC8gZXhlY2xp c3RzIHN1cHBvcnQuICBBcyB0aGUKPiBleGVjbGlzdHMgcmVxdWVzdCBpcyBub3cgcGFydCBvZiB0 aGUgZ2VtIHJlcXVlc3QgaXQgaXMgcG9zc2libGUgYW5kCj4gZGVzaXJhYmxlIHRvIHVuaWZ5IHRo ZSByZXF1ZXN0IGxpZmUtY3ljbGVzIGZvciBleGVjbGlzdCBhbmQgbGVnYWN5Cj4gcmVxdWVzdHMu Cj4KPiBBZGRlZCBhIGNvbnRleHQgY29tcGxldGUgZmxhZyB0byBhIHJlcXVlc3Qgd2hpY2ggZ2V0 cyBzZXQgZHVyaW5nIHRoZQo+IGNvbnRleHQgc3dpdGNoIGludGVycnVwdC4KPgo+IEFkZGVkIGEg ZnVuY3Rpb24gaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmVhYmxlKCkuICBBIHJlcXVlc3QgaXMgY29u c2lkZXJlZAo+IHJldGlyZWFibGUgaWYgaXRzIHNlcW5vIHBhc3NlZCAoaS5lLiB0aGUgcmVxdWVz dCBoYXMgY29tcGxldGVkKSBhbmQgZWl0aGVyCj4gaXQgd2FzIG5ldmVyIHN1Ym1pdHRlZCB0byB0 aGUgRUxTUCBvciBpdHMgY29udGV4dCBjb21wbGV0ZWQuICBUaGlzIGVuc3VyZXMKPiB0aGF0IGNv bnRleHQgc2F2ZSBpcyBjYXJyaWVkIG91dCBiZWZvcmUgdGhlIGxhc3QgcmVxdWVzdCBmb3IgYSBj b250ZXh0IGlzCj4gY29uc2lkZXJlZCByZXRpcmVhYmxlLiAgcmV0aXJlX3JlcXVlc3RzX3Jpbmco KSBub3cgdXNlcwo+IGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlYWJsZSgpIHJhdGhlciB0aGFuIHJl cXVlc3RfY29tcGxldGUoKSB3aGVuIGRlY2lkaW5nCj4gd2hpY2ggcmVxdWVzdHMgdG8gcmV0aXJl LiBSZXF1ZXN0cyB0aGF0IHdlcmUgbm90IHdhaXRpbmcgZm9yIGEgY29udGV4dAo+IHN3aXRjaCBp bnRlcnJ1cHQgKGVpdGhlciBhcyBhIHJlc3VsdCBvZiBiZWluZyBtZXJnZWQgaW50byBhIGZvbGxv d2luZwo+IHJlcXVlc3Qgb3IgYnkgYmVpbmcgYSBsZWdhY3kgcmVxdWVzdCkgd2lsbCBiZSBjb25z aWRlcmVkIHJldGlyZWFibGUgYXMKPiBzb29uIGFzIHRoZWlyIHNlcW5vIGhhcyBwYXNzZWQuCj4K PiBSZW1vdmVkIHRoZSBleHRyYSByZXF1ZXN0IHJlZmVyZW5jZSBoZWxkIGZvciB0aGUgZXhlY2xp c3QgcmVxdWVzdC4KPgo+IFJlbW92ZWQgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cygp IGFuZCBhbGwgcmVmZXJlbmNlcyB0bwo+IGludGVsX2VuZ2luZV9jcy5leGVjbGlzdF9yZXRpcmVk X3JlcV9saXN0Lgo+Cj4gTW92ZWQgY29udGV4dCB1bnBpbm5pbmcgaW50byByZXRpcmVfcmVxdWVz dHNfcmluZygpIGZvciBub3cuICBGdXJ0aGVyIHdvcmsKPiBpcyBwZW5kaW5nIGZvciB0aGUgY29u dGV4dCBwaW5uaW5nIC0gdGhpcyBwYXRjaCBzaG91bGQgYWxsb3cgdXMgdG8gdXNlIHRoZQo+IGFj dGl2ZSBsaXN0IHRvIHRyYWNrIGNvbnRleHQgYW5kIHJpbmcgYnVmZmVyIG9iamVjdHMgbGF0ZXIu CgpKdXN0IGhlYWRzIHVwIG9uIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBkcm9wIG9uIGNlcnRhaW4g d29ya2xvYWRzLiBTaW5jZSAKcmV0aXJlX3JldWVzdHNfcmluZyBpcyBjYWxsZWQgYmVmb3JlIGVh Y2ggc3VibWlzc2lvbiwgZm9yIHRob3NlIENQVSAKYm91bmQgd29ya2xvYWRzLCB5b3Ugd2lsbCBz ZWUgY29udGV4dCBwaW4gJiB1bnBpbiB2ZXJ5IG9mdGVuLiBUaGUgCmlvcmVtYXBfd2MgLyBpb3Vu bWFwIGZvciByaW5nIGJ1ZmZlciBjb25zdW1lcyBtb3JlIENQVSB0aW1lLiBJIGZvdW5kIAp0aGlz IGlzc3VlIGR1cmluZyBHdUMgaW1wbGVtZW50YXRpb24gYmVjYXVzZSBHdUMgZG9lcyBub3QgdXNl IGV4ZWNsaXN0IApyZXF1ZXN0IHF1ZXVlIGJ1dCBsZWdhY3kgb25lLiBPbiBTS0wsIHRoZXJlIGlz IGFib3V0IDN+NSUgcGVyZm9ybWFuY2UgCmRyb3AgaW4gd29ya2xvYWRzIHN1Y2ggYXMgU3luTWFy azIgb2dsYmF0Y2g1LzYvNy4KClRoYW5rcywKQWxleAo+IENoYW5nZWQgZ2VuOF9jc19pcnFfaGFu ZGxlcigpIHNvIHRoYXQgbm90aWZ5X3JpbmcoKSBpcyBjYWxsZWQgd2hlbgo+IGNvbnRleHRzIGNv bXBsZXRlIGFzIHdlbGwgYXMgd2hlbiBhIHVzZXIgaW50ZXJydXB0IG9jY3VycyBzbyB0aGF0Cj4g bm90aWZpY2F0aW9uIGhhcHBlbnMgd2hlbiBhIHJlcXVlc3QgaXMgY29tcGxldGUgYW5kIGNvbnRl eHQgc2F2ZSBoYXMKPiBmaW5pc2hlZC4KPgo+IHYyOiBSZWJhc2Ugb3ZlciB0aGUgcmVhZC1yZWFk IG9wdGltaXNhdGlvbiBjaGFuZ2VzCj4KPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgRGFuaWVsIDx0 aG9tYXMuZGFuaWVsQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBOaWNrIEhvYXRoIDxuaWNo b2xhcy5ob2F0aEBpbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oICAgICAgICAgfCAgNiArKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jICAgICAgICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8ICA2ICsrLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8IDQ0ICsrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgICAg fCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgIDEg LQo+ICAgNiBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDFkYmQ5NTcuLmVmMDIzNzggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjIxMyw2ICsyMjEzLDEyIEBAIHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCB7Cj4gICAJLyoqIEV4ZWNsaXN0cyBuby4gb2YgdGltZXMgdGhp cyByZXF1ZXN0IGhhcyBiZWVuIHNlbnQgdG8gdGhlIEVMU1AgKi8KPiAgIAlpbnQgZWxzcF9zdWJt aXR0ZWQ7Cj4gICAKPiArCS8qKgo+ICsJICogRXhlY2xpc3RzOiB3aGV0aGVyIHRoaXMgcmVxdWVz dHMncyBjb250ZXh0IGhhcyBjb21wbGV0ZWQgYWZ0ZXIKPiArCSAqIHN1Ym1pc3Npb24gdG8gdGhl IEVMU1AKPiArCSAqLwo+ICsJYm9vbCBjdHhfY29tcGxldGU7Cj4gKwo+ICAgfTsKPiAgIAo+ICAg aW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA0OTAxNmUwLi4zNjgxYTMzIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTIzNjgsNiArMjM2OCwxMiBAQCB2b2lkIGk5MTVf dm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+ICAgCWxpc3RfbW92ZV90 YWlsKCZ2bWEtPm1tX2xpc3QsICZ2bWEtPnZtLT5hY3RpdmVfbGlzdCk7Cj4gICB9Cj4gICAKPiAr c3RhdGljIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmVhYmxlKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQo+ICt7Cj4gKwlyZXR1cm4gKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxl dGVkKHJlcSwgdHJ1ZSkgJiYKPiArCQkoIXJlcS0+ZWxzcF9zdWJtaXR0ZWQgfHwgcmVxLT5jdHhf Y29tcGxldGUpKTsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkCj4gICBpOTE1X2dlbV9vYmplY3Rf cmV0aXJlX193cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+IEBA IC0yODUzLDEwICsyODU5LDI4IEBAIGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5nKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICAJCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCwKPiAgIAkJCQkJICAgbGlzdCk7Cj4gICAKPiAtCQlpZiAoIWk5MTVfZ2VtX3JlcXVl c3RfY29tcGxldGVkKHJlcXVlc3QsIHRydWUpKQo+ICsJCWlmICghaTkxNV9nZW1fcmVxdWVzdF9y ZXRpcmVhYmxlKHJlcXVlc3QpKQo+ICAgCQkJYnJlYWs7Cj4gICAKPiAgIAkJaTkxNV9nZW1fcmVx dWVzdF9yZXRpcmUocmVxdWVzdCk7Cj4gKwo+ICsJCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMp IHsKPiArCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IHJlcXVlc3QtPmN0eDsKPiArCQkJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiArCQkJCXJpbmctPmRldi0+ZGV2 X3ByaXZhdGU7Cj4gKwkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwkJCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KPiArCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0 ZTsKPiArCj4gKwkJCXNwaW5fbG9ja19pcnFzYXZlKCZyaW5nLT5leGVjbGlzdF9sb2NrLCBmbGFn cyk7Cj4gKwo+ICsJCQlpZiAoY3R4X29iaiAmJiAoY3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4 dCkpCj4gKwkJCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJpbmcsIGN0eCk7Cj4gKwo+ICsJCQlp bnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gKwkJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJnJpbmctPmV4ZWNsaXN0X2xvY2ssIGZsYWdzKTsKPiArCQl9Cj4gKwo+ICAgCX0KPiAgIAo+ ICAgCS8qIE1vdmUgYW55IGJ1ZmZlcnMgb24gdGhlIGFjdGl2ZSBsaXN0IHRoYXQgYXJlIG5vIGxv bmdlciByZWZlcmVuY2VkCj4gQEAgLTI4NzIsMTIgKzI4OTYsMTQgQEAgaTkxNV9nZW1fcmV0aXJl X3JlcXVlc3RzX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAo+ICAgCQlp ZiAoIWxpc3RfZW1wdHkoJm9iai0+bGFzdF9yZWFkX3JlcVtyaW5nLT5pZF0tPmxpc3QpKQo+ICAg CQkJYnJlYWs7Cj4gKwkJaWYgKCFpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZWFibGUob2JqLT5sYXN0 X3JlYWRfcmVxW3JpbmctPmlkXSkpCj4gKwkJCWJyZWFrOwo+ICAgCj4gICAJCWk5MTVfZ2VtX29i amVjdF9yZXRpcmVfX3JlYWQob2JqLCByaW5nLT5pZCk7Cj4gICAJfQo+ICAgCj4gICAJaWYgKHVu bGlrZWx5KHJpbmctPnRyYWNlX2lycV9yZXEgJiYKPiAtCQkgICAgIGk5MTVfZ2VtX3JlcXVlc3Rf Y29tcGxldGVkKHJpbmctPnRyYWNlX2lycV9yZXEsIHRydWUpKSkgewo+ICsJCSAgICAgaTkxNV9n ZW1fcmVxdWVzdF9yZXRpcmVhYmxlKHJpbmctPnRyYWNlX2lycV9yZXEpKSkgewo+ICAgCQlyaW5n LT5pcnFfcHV0KHJpbmcpOwo+ICAgCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmcmluZy0+dHJh Y2VfaXJxX3JlcSwgTlVMTCk7Cj4gICAJfQo+IEBAIC0yODk2LDE1ICsyOTIyLDYgQEAgaTkxNV9n ZW1fcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJZm9yX2VhY2hf cmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewo+ICAgCQlpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNf cmluZyhyaW5nKTsKPiAgIAkJaWRsZSAmPSBsaXN0X2VtcHR5KCZyaW5nLT5yZXF1ZXN0X2xpc3Qp Owo+IC0JCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKPiAtCQkJdW5zaWduZWQgbG9uZyBm bGFnczsKPiAtCj4gLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZyaW5nLT5leGVjbGlzdF9sb2NrLCBm bGFncyk7Cj4gLQkJCWlkbGUgJj0gbGlzdF9lbXB0eSgmcmluZy0+ZXhlY2xpc3RfcXVldWUpOwo+ IC0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyaW5nLT5leGVjbGlzdF9sb2NrLCBmbGFncyk7 Cj4gLQo+IC0JCQlpbnRlbF9leGVjbGlzdHNfcmV0aXJlX3JlcXVlc3RzKHJpbmcpOwo+IC0JCX0K PiAgIAl9Cj4gICAKPiAgIAlpZiAoaWRsZSkKPiBAQCAtMjk4MCwxMiArMjk5NywxNCBAQCBpOTE1 X2dlbV9vYmplY3RfZmx1c2hfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop Cj4gICAJCWlmIChyZXEgPT0gTlVMTCkKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gLQkJaWYgKGxp c3RfZW1wdHkoJnJlcS0+bGlzdCkpCj4gLQkJCWdvdG8gcmV0aXJlOwo+ICsJCWlmIChsaXN0X2Vt cHR5KCZyZXEtPmxpc3QpKSB7Cj4gKwkJCWlmIChpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZWFibGUo cmVxKSkKPiArCQkJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQob2JqLCBpKTsKPiArCQkJ Y29udGludWU7Cj4gKwkJfQo+ICAgCj4gLQkJaWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVk KHJlcSwgdHJ1ZSkpIHsKPiArCQlpZiAoaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmVhYmxlKHJlcSkp IHsKPiAgIAkJCV9faTkxNV9nZW1fcmVxdWVzdF9yZXRpcmVfX3VwdG8ocmVxKTsKPiAtcmV0aXJl Ogo+ICAgCQkJaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9fcmVhZChvYmosIGkpOwo+ICAgCQl9Cj4g ICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDNhYzMwYjguLmRmYTIzNzkgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMTE1OCw5ICsxMTU4LDExIEBAIHN0YXRp YyB2b2lkIHNuYl9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCj4g ICBzdGF0aWMgdm9pZCBnZW44X2NzX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsIHUzMiBpaXIpCj4gICB7Cj4gKwlib29sIG5lZWRfbm90aWZ5ID0gZmFsc2U7Cj4gKwo+ ICAgCWlmIChpaXIgJiBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQpCj4gLQkJaW50ZWxfbHJj X2lycV9oYW5kbGVyKHJpbmcpOwo+IC0JaWYgKGlpciAmIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQ VCkKPiArCQluZWVkX25vdGlmeSA9IGludGVsX2xyY19pcnFfaGFuZGxlcihyaW5nKTsKPiArCWlm ICgoaWlyICYgR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUKSB8fCBuZWVkX25vdGlmeSkKPiAgIAkJ bm90aWZ5X3JpbmcocmluZyk7Cj4gICB9Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ IGluZGV4IDliOTI4YWIuLjgzNzM5MDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ IEBAIC00MTEsOSArNDExLDggQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NvbnRleHRfdW5xdWV1 ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgCQkJLyogU2FtZSBjdHg6IGlnbm9y ZSBmaXJzdCByZXF1ZXN0LCBhcyBzZWNvbmQgcmVxdWVzdAo+ICAgCQkJICogd2lsbCB1cGRhdGUg dGFpbCBwYXN0IGZpcnN0IHJlcXVlc3QncyB3b3JrbG9hZCAqLwo+ICAgCQkJY3Vyc29yLT5lbHNw X3N1Ym1pdHRlZCA9IHJlcTAtPmVsc3Bfc3VibWl0dGVkOwo+ICsJCQlyZXEwLT5lbHNwX3N1Ym1p dHRlZCA9IDA7Cj4gICAJCQlsaXN0X2RlbCgmcmVxMC0+ZXhlY2xpc3RfbGluayk7Cj4gLQkJCWxp c3RfYWRkX3RhaWwoJnJlcTAtPmV4ZWNsaXN0X2xpbmssCj4gLQkJCQkmcmluZy0+ZXhlY2xpc3Rf cmV0aXJlZF9yZXFfbGlzdCk7Cj4gICAJCQlyZXEwID0gY3Vyc29yOwo+ICAgCQl9IGVsc2Ugewo+ ICAgCQkJcmVxMSA9IGN1cnNvcjsKPiBAQCAtNDUwLDYgKzQ0OSw3IEBAIHN0YXRpYyB2b2lkIGV4 ZWNsaXN0c19jb250ZXh0X3VucXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAg IAlyZXEwLT5lbHNwX3N1Ym1pdHRlZCsrOwo+ICAgCWlmIChyZXExKQo+ICAgCQlyZXExLT5lbHNw X3N1Ym1pdHRlZCsrOwo+ICsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGJvb2wgZXhlY2xpc3RzX2No ZWNrX3JlbW92ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gQEAgLTQ2 OSwxMSArNDY5LDkgQEAgc3RhdGljIGJvb2wgZXhlY2xpc3RzX2NoZWNrX3JlbW92ZV9yZXF1ZXN0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCWlmIChpbnRlbF9leGVjbGlzdHNf Y3R4X2lkKGN0eF9vYmopID09IHJlcXVlc3RfaWQpIHsKPiAgIAkJCVdBUk4oaGVhZF9yZXEtPmVs c3Bfc3VibWl0dGVkID09IDAsCj4gICAJCQkgICAgICJOZXZlciBzdWJtaXR0ZWQgaGVhZCByZXF1 ZXN0XG4iKTsKPiAtCj4gICAJCQlpZiAoLS1oZWFkX3JlcS0+ZWxzcF9zdWJtaXR0ZWQgPD0gMCkg ewo+ICsJCQkJaGVhZF9yZXEtPmN0eF9jb21wbGV0ZSA9IDE7Cj4gICAJCQkJbGlzdF9kZWwoJmhl YWRfcmVxLT5leGVjbGlzdF9saW5rKTsKPiAtCQkJCWxpc3RfYWRkX3RhaWwoJmhlYWRfcmVxLT5l eGVjbGlzdF9saW5rLAo+IC0JCQkJCSZyaW5nLT5leGVjbGlzdF9yZXRpcmVkX3JlcV9saXN0KTsK PiAgIAkJCQlyZXR1cm4gdHJ1ZTsKPiAgIAkJCX0KPiAgIAkJfQo+IEBAIC00ODgsOCArNDg2LDkg QEAgc3RhdGljIGJvb2wgZXhlY2xpc3RzX2NoZWNrX3JlbW92ZV9yZXF1ZXN0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsCj4gICAgKgo+ICAgICogQ2hlY2sgdGhlIHVucmVhZCBDb250ZXh0 IFN0YXR1cyBCdWZmZXJzIGFuZCBtYW5hZ2UgdGhlIHN1Ym1pc3Npb24gb2YgbmV3Cj4gICAgKiBj b250ZXh0cyB0byB0aGUgRUxTUCBhY2NvcmRpbmdseS4KPiArICogQHJldHVybiB3aGV0aGVyIGEg Y29udGV4dCBjb21wbGV0ZWQKPiAgICAqLwo+IC12b2lkIGludGVsX2xyY19pcnFfaGFuZGxlcihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICtib29sIGludGVsX2xyY19pcnFfaGFuZGxl cihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJdTMyIHN0 YXR1c19wb2ludGVyOwo+IEBAIC01NDAsNiArNTM5LDggQEAgdm9pZCBpbnRlbF9scmNfaXJxX2hh bmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAo+ICAgCUk5MTVfV1JJVEUo UklOR19DT05URVhUX1NUQVRVU19QVFIocmluZyksCj4gICAJCSAgICgodTMyKXJpbmctPm5leHRf Y29udGV4dF9zdGF0dXNfYnVmZmVyICYgMHgwNykgPDwgOCk7Cj4gKwo+ICsJcmV0dXJuIChzdWJt aXRfY29udGV4dHMgIT0gMCk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2Nv bnRleHRfcXVldWUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+IEBAIC01 NTEsNyArNTUyLDcgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9xdWV1ZShzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJaWYgKHJlcXVlc3QtPmN0eCAhPSBy aW5nLT5kZWZhdWx0X2NvbnRleHQpCj4gICAJCWludGVsX2xyX2NvbnRleHRfcGluKHJpbmcsIHJl cXVlc3QtPmN0eCk7Cj4gICAKPiAtCWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3Qp Owo+ICsJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVuY2UocmVxdWVzdC0+Y3R4KTsKPiAgIAo+ICAg CXJlcXVlc3QtPnRhaWwgPSByZXF1ZXN0LT5yaW5nYnVmLT50YWlsOwo+ICAgCj4gQEAgLTU3Miw4 ICs1NzMsNiBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAkJCVdBUk4odGFpbF9yZXEtPmVsc3Bfc3Vi bWl0dGVkICE9IDAsCj4gICAJCQkJIk1vcmUgdGhhbiAyIGFscmVhZHktc3VibWl0dGVkIHJlcXMg cXVldWVkXG4iKTsKPiAgIAkJCWxpc3RfZGVsKCZ0YWlsX3JlcS0+ZXhlY2xpc3RfbGluayk7Cj4g LQkJCWxpc3RfYWRkX3RhaWwoJnRhaWxfcmVxLT5leGVjbGlzdF9saW5rLAo+IC0JCQkJJnJpbmct PmV4ZWNsaXN0X3JldGlyZWRfcmVxX2xpc3QpOwo+ICAgCQl9Cj4gICAJfQo+ICAgCj4gQEAgLTkz OCwzMiArOTM3LDYgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1 X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAt dm9pZCBpbnRlbF9leGVjbGlzdHNfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCAqdG1w Owo+IC0Jc3RydWN0IGxpc3RfaGVhZCByZXRpcmVkX2xpc3Q7Cj4gLQo+IC0JV0FSTl9PTighbXV0 ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+IC0JaWYgKGxpc3RfZW1w dHkoJnJpbmctPmV4ZWNsaXN0X3JldGlyZWRfcmVxX2xpc3QpKQo+IC0JCXJldHVybjsKPiAtCj4g LQlJTklUX0xJU1RfSEVBRCgmcmV0aXJlZF9saXN0KTsKPiAtCXNwaW5fbG9ja19pcnEoJnJpbmct PmV4ZWNsaXN0X2xvY2spOwo+IC0JbGlzdF9yZXBsYWNlX2luaXQoJnJpbmctPmV4ZWNsaXN0X3Jl dGlyZWRfcmVxX2xpc3QsICZyZXRpcmVkX2xpc3QpOwo+IC0Jc3Bpbl91bmxvY2tfaXJxKCZyaW5n LT5leGVjbGlzdF9sb2NrKTsKPiAtCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCB0 bXAsICZyZXRpcmVkX2xpc3QsIGV4ZWNsaXN0X2xpbmspIHsKPiAtCQlzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY3R4ID0gcmVxLT5jdHg7Cj4gLQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0 eF9vYmogPQo+IC0JCQkJY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+IC0KPiAtCQlpZiAo Y3R4X29iaiAmJiAoY3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4dCkpCj4gLQkJCWludGVsX2xy X2NvbnRleHRfdW5waW4ocmluZywgY3R4KTsKPiAtCQlsaXN0X2RlbCgmcmVxLT5leGVjbGlzdF9s aW5rKTsKPiAtCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJlcSk7Cj4gLQl9Cj4gLX0K PiAtCj4gICB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19zdG9wKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g cmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMTcwNiw3ICsxNjc5LDYgQEAgc3RhdGljIGlu dCBsb2dpY2FsX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW4KPiAgIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZyaW5nLT5pcnFfcXVldWUp Owo+ICAgCj4gICAJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmV4ZWNsaXN0X3F1ZXVlKTsKPiAtCUlO SVRfTElTVF9IRUFEKCZyaW5nLT5leGVjbGlzdF9yZXRpcmVkX3JlcV9saXN0KTsKPiAgIAlzcGlu X2xvY2tfaW5pdCgmcmluZy0+ZXhlY2xpc3RfbG9jayk7Cj4gICAKPiAgIAlyZXQgPSBpOTE1X2Nt ZF9wYXJzZXJfaW5pdF9yaW5nKHJpbmcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gaW5k ZXggZjU5OTQwYS4uOWQyZTk4YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gQEAg LTgyLDcgKzgyLDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1 X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gICAJCQkgICAgICAgc3RydWN0IGxpc3RfaGVh ZCAqdm1hcyk7Cj4gICB1MzIgaW50ZWxfZXhlY2xpc3RzX2N0eF9pZChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqY3R4X29iaik7Cj4gICAKPiAtdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4gK2Jvb2wgaW50ZWxfbHJjX2lycV9oYW5k bGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICAgdm9pZCBpbnRlbF9leGVjbGlz dHNfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICAgCj4g ICAjZW5kaWYgLyogX0lOVEVMX0xSQ19IXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmgKPiBpbmRleCAzMDRjYWM0Li43M2IwYmQ4IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC0yNjMsNyArMjYzLDYgQEAgc3RydWN0ICBp bnRlbF9lbmdpbmVfY3Mgewo+ICAgCS8qIEV4ZWNsaXN0cyAqLwo+ICAgCXNwaW5sb2NrX3QgZXhl Y2xpc3RfbG9jazsKPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGV4ZWNsaXN0X3F1ZXVlOwo+IC0Jc3Ry dWN0IGxpc3RfaGVhZCBleGVjbGlzdF9yZXRpcmVkX3JlcV9saXN0Owo+ICAgCXU4IG5leHRfY29u dGV4dF9zdGF0dXNfYnVmZmVyOwo+ICAgCXUzMiAgICAgICAgICAgICBpcnFfa2VlcF9tYXNrOyAv KiBiaXRtYXNrIGZvciBpbnRlcnJ1cHRzIHRoYXQgc2hvdWxkIG5vdCBiZSBtYXNrZWQgKi8KPiAg IAlpbnQJCSgqZW1pdF9yZXF1ZXN0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3QpOwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK