From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 06/12] drm/i915/scheduler: Execute requests in order of priorities Date: Thu, 3 Nov 2016 16:21:25 +0000 Message-ID: <435979df-37be-cbab-b6fc-0e0f9002bbb6@linux.intel.com> References: <20161102175051.29163-1-chris@chris-wilson.co.uk> <20161102175051.29163-7-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 514D689E1A for ; Thu, 3 Nov 2016 16:21:28 +0000 (UTC) In-Reply-To: <20161102175051.29163-7-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKMXN0IHBhc3MgY29tbWVudHMgb25seSBmb3Igbm93LgoKT24gMDIvMTEvMjAxNiAxNzo1 MCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+IFRyYWNrIHRoZSBwcmlvcml0eSBvZiBlYWNoIHJlcXVl c3QgYW5kIHVzZSBpdCB0byBkZXRlcm1pbmUgdGhlIG9yZGVyIGluCj4gd2hpY2ggd2Ugc3VibWl0 IHJlcXVlc3RzIHRvIHRoZSBoYXJkd2FyZSB2aWEgZXhlY2xpc3RzLgo+Cj4gVGhlIHByaW9yaXR5 IG9mIHRoZSByZXF1ZXN0IGlzIGRldGVybWluZWQgYnkgdGhlIHVzZXIgKGV2ZW50dWFsbHkgdmlh Cj4gdGhlIGNvbnRleHQpIGJ1dCBtYXkgYmUgb3ZlcnJpZGRlbiBhdCBhbnkgdGltZSBieSB0aGUg ZHJpdmVyLiBXaGVuIHdlIHNldAo+IHRoZSBwcmlvcml0eSBvZiB0aGUgcmVxdWVzdCwgd2UgYnVt cCB0aGUgcHJpb3JpdHkgb2YgYWxsIG9mIGl0cwo+IGRlcGVuZGVuY2llcyB0byBtYXRjaCAtIHNv IHRoYXQgYSBoaWdoIHByaW9yaXR5IGRyYXdpbmcgb3BlcmF0aW9uIGlzIG5vdAo+IHN0dWNrIGJl aGluZCBhIGJhY2tncm91bmQgdGFzay4KPgo+IFdoZW4gdGhlIHJlcXVlc3QgaXMgcmVhZHkgdG8g ZXhlY3V0ZSAoaS5lLiB3ZSBoYXZlIHNpZ25hbGVkIHRoZSBzdWJtaXQKPiBmZW5jZSBmb2xsb3dp bmcgY29tcGxldGlvbiBvZiBhbGwgaXRzIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRoaXJkCj4g cGFydHkgZmVuY2VzKSwgd2UgcHV0IHRoZSByZXF1ZXN0IGludG8gYSBwcmlvcml0eSBzb3J0ZWQg cmJ0cmVlIHRvIGJlCj4gc3VibWl0dGVkIHRvIHRoZSBoYXJkd2FyZS4gSWYgdGhlIHJlcXVlc3Qg aXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gYWxsCj4gcGVuZGluZyByZXF1ZXN0cywgaXQgd2lsbCBi ZSBzdWJtaXR0ZWQgb24gdGhlIG5leHQgY29udGV4dC1zd2l0Y2gKPiBpbnRlcnJ1cHQgYXMgc29v biBhcyB0aGUgaGFyZHdhcmUgaGFzIGNvbXBsZXRlZCB0aGUgY3VycmVudCByZXF1ZXN0LiBXZQo+ IGRvIG5vdCBjdXJyZW50bHkgcHJlZW1wdCBhbnkgY3VycmVudCBleGVjdXRpb24gdG8gaW1tZWRp YXRlbHkgcnVuIGEgdmVyeQo+IGhpZ2ggcHJpb3JpdHkgcmVxdWVzdCwgYXQgbGVhc3Qgbm90IHll dC4KPgo+IE9uZSBtb3JlIGxpbWl0YXRpb24sIGlzIHRoYXQgdGhpcyBpcyBmaXJzdCBpbXBsZW1l bnRhdGlvbiBpcyBmb3IKPiBleGVjbGlzdHMgb25seSBzbyBjdXJyZW50bHkgbGltaXRlZCB0byBn ZW44L2dlbjkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMg ICAgICAgIHwgICA3ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAg ICAgICB8ICAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMg ICAgfCAgIDQgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oICAg IHwgICA2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8 ICAgNCArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAg IDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgMTA0 ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaCAgICB8ICAgMyArLQo+ICA4IGZpbGVzIGNoYW5nZWQsIDEwOSBpbnNl cnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4gaW5kZXggM2NiOTZkMjYwZGZiLi5kYWM0MzU2ODBlOTggMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC02MzEsOCArNjMxLDkgQEAgc3RhdGljIHZvaWQgcHJp bnRfcmVxdWVzdChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCj4gIAkJCSAgc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpycSwKPiAgCQkJICBjb25zdCBjaGFyICpwcmVmaXgpCj4gIHsKPiAtCXNlcV9w cmludGYobSwgIiVzJXggWyV4OiV4XSBAICVkOiAlc1xuIiwgcHJlZml4LAo+ICsJc2VxX3ByaW50 ZihtLCAiJXMleCBbJXg6JXhdIHByaW89JWQgQCAlZG1zOiAlc1xuIiwgcHJlZml4LAoKTm90aWNl ZCB0aGlzIGlzIHF1aXRlIHVucmVhZGFibGUgZHVlIHRoZSByYW5nZSBvZiBJTlRfTUlOIHRvIElO VF9NQVguIERvIAp3ZSBuZWVkIHN1Y2ggZ3JhbnVsYXJpdHkgb3IgY291bGQgdXNlIHNvbWV0aGlu ZyBzbWFsbGVyIHNvIGl0IGxvb2tzIApuaWNlciBoZXJlPyBJIGtub3csIHRoZSBhcmd1bWVudCBp cyBxdWl0ZSBwb29yLiA6KQoKPiAgCQkgICBycS0+Z2xvYmFsX3NlcW5vLCBycS0+Y3R4LT5od19p ZCwgcnEtPmZlbmNlLnNlcW5vLAo+ICsJCSAgIHJxLT5wcmlvdHJlZS5wcmlvcml0eSwKPiAgCQkg ICBqaWZmaWVzX3RvX21zZWNzKGppZmZpZXMgLSBycS0+ZW1pdHRlZF9qaWZmaWVzKSwKPiAgCQkg ICBycS0+dGltZWxpbmUtPmNvbW1vbi0+bmFtZSk7Cj4gIH0KPiBAQCAtMzIxOCw2ICszMjE5LDcg QEAgc3RhdGljIGludCBpOTE1X2VuZ2luZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAq dW51c2VkKQo+Cj4gIAkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewo+ICAJCQl1MzIgcHRy LCByZWFkLCB3cml0ZTsKPiArCQkJc3RydWN0IHJiX25vZGUgKnJiOwo+Cj4gIAkJCXNlcV9wcmlu dGYobSwgIlx0RXhlY2xpc3Qgc3RhdHVzOiAweCUwOHggJTA4eFxuIiwKPiAgCQkJCSAgIEk5MTVf UkVBRChSSU5HX0VYRUNMSVNUX1NUQVRVU19MTyhlbmdpbmUpKSwKPiBAQCAtMzI1Nyw3ICszMjU5 LDggQEAgc3RhdGljIGludCBpOTE1X2VuZ2luZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqdW51c2VkKQo+ICAJCQlyY3VfcmVhZF91bmxvY2soKTsKPgo+ICAJCQlzcGluX2xvY2tfaXJx KCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKPiAtCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShycSwg JmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUsIGV4ZWNsaXN0X2xpbmspIHsKPiArCQkJZm9yIChyYiA9 IGVuZ2luZS0+ZXhlY2xpc3RfZmlyc3Q7IHJiOyByYiA9IHJiX25leHQocmIpKSB7Cj4gKwkJCQly cSA9IHJiX2VudHJ5KHJiLCB0eXBlb2YoKnJxKSwgcHJpb3RyZWUubm9kZSk7Cj4gIAkJCQlwcmlu dF9yZXF1ZXN0KG0sIHJxLCAiXHRcdFEgIik7Cj4gIAkJCX0KPiAgCQkJc3Bpbl91bmxvY2tfaXJx KCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRl eCBjZjI4NjY2MDIxZjguLjQ2OTc4NDhlY2ZkOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u Ywo+IEBAIC0yNjg3LDEwICsyNjg3LDExIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2NsZWFudXBf ZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPgo+ICAJaWYgKGk5MTUuZW5h YmxlX2V4ZWNsaXN0cykgewo+ICAJCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxv Y2spOwo+IC0JCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKPiAgCQlp OTE1X2dlbV9yZXF1ZXN0X3B1dChlbmdpbmUtPmV4ZWNsaXN0X3BvcnRbMF0ucmVxdWVzdCk7Cj4g IAkJaTkxNV9nZW1fcmVxdWVzdF9wdXQoZW5naW5lLT5leGVjbGlzdF9wb3J0WzFdLnJlcXVlc3Qp Owo+ICAJCW1lbXNldChlbmdpbmUtPmV4ZWNsaXN0X3BvcnQsIDAsIHNpemVvZihlbmdpbmUtPmV4 ZWNsaXN0X3BvcnQpKTsKPiArCQllbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlID0gUkJfUk9PVDsKPiAr CQllbmdpbmUtPmV4ZWNsaXN0X2ZpcnN0ID0gTlVMTDsKPiAgCQlzcGluX3VubG9ja19pcnEoJmVu Z2luZS0+dGltZWxpbmUtPmxvY2spOwo+ICAJfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3JlcXVlc3QuYwo+IGluZGV4IDEzMDkwZjIyNjIwMy4uNWYwMDY4ZmFjM2U5IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IEBAIC0xNDEsNiArMTQx LDggQEAgaTkxNV9wcmlvdHJlZV9maW5pKHN0cnVjdCBpOTE1X3ByaW90cmVlICpwdCkKPiAgewo+ ICAJc3RydWN0IGk5MTVfZGVwZW5kZW5jeSAqZGVwLCAqbmV4dDsKPgo+ICsJR0VNX0JVR19PTigh UkJfRU1QVFlfTk9ERSgmcHQtPm5vZGUpKTsKPiArCj4gIAkvKiBFdmVyeW9uZSB3ZSBkZXBlbmRl ZCB1cG9uIHNob3VsZCByZXRpcmUgYmVmb3JlIHVzIGFuZCByZW1vdmUKPiAgCSAqIHRoZW1zZWx2 ZXMgZnJvbSBvdXIgbGlzdC4gSG93ZXZlciwgcmV0aXJlbWVudCBpcyBydW4gaW5kZXBlbmRlbnRs eQo+ICAJICogb24gZWFjaCB0aW1lbGluZSBhbmQgc28gd2UgbWF5IGJlIGNhbGxlZCBvdXQtb2Yt b3JkZXIuCj4gQEAgLTE2NCw2ICsxNjYsOCBAQCBpOTE1X3ByaW90cmVlX2luaXQoc3RydWN0IGk5 MTVfcHJpb3RyZWUgKnB0KQo+ICB7Cj4gIAlJTklUX0xJU1RfSEVBRCgmcHQtPnByZV9saXN0KTsK PiAgCUlOSVRfTElTVF9IRUFEKCZwdC0+cG9zdF9saXN0KTsKPiArCVJCX0NMRUFSX05PREUoJnB0 LT5ub2RlKTsKPiArCXB0LT5wcmlvcml0eSA9IElOVF9NSU47Cj4gIH0KPgo+ICB2b2lkIGk5MTVf Z2VtX3JldGlyZV9ub29wKHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCj4gaW5kZXggMGNiMmJhNTQ2MDYyLi40Mjg4 ZjUxMmFjNTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVx dWVzdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCj4g QEAgLTUxLDYgKzUxLDkgQEAgc3RydWN0IGk5MTVfZGVwZW5kZW5jeSB7Cj4gIHN0cnVjdCBpOTE1 X3ByaW90cmVlIHsKPiAgCXN0cnVjdCBsaXN0X2hlYWQgcHJlX2xpc3Q7IC8qIHdobyBpcyBiZWZv cmUgdXMsIHdlIGRlcGVuZCB1cG9uICovCj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIHBvc3RfbGlzdDsg Lyogd2hvIGlzIGFmdGVyIHVzLCB0aGV5IGRlcGVuZCB1cG9uIHVzICovCj4gKwlzdHJ1Y3QgcmJf bm9kZSBub2RlOwo+ICsJaW50IHByaW9yaXR5Owo+ICsjZGVmaW5lIEk5MTVfUFJJT1JJVFlfTUFY IDEwMjQKClVudXNlZCBpbiB0aGlzIHBhdGNoLgoKPiAgfTsKPgo+ICAvKioKPiBAQCAtMTY4LDkg KzE3MSw2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7Cj4gIAkvKiogZmlsZV9wcml2IGxpc3QgZW50cnkg Zm9yIHRoaXMgcmVxdWVzdCAqLwo+ICAJc3RydWN0IGxpc3RfaGVhZCBjbGllbnRfbGlzdDsKPiAt Cj4gLQkvKiogTGluayBpbiB0aGUgZXhlY2xpc3Qgc3VibWlzc2lvbiBxdWV1ZSwgZ3VhcmRlZCBi eSBleGVjbGlzdF9sb2NrLiAqLwo+IC0Jc3RydWN0IGxpc3RfaGVhZCBleGVjbGlzdF9saW5rOwo+ ICB9Owo+Cj4gIGV4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBpOTE1X2ZlbmNlX29w czsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lv bi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gaW5kZXgg ZGRiNTc0ZDVjZWRhLi5iMzE1NzNhODI1ZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTY0MCw2ICs2NDAsOSBAQCBzdGF0aWMgdm9pZCBp OTE1X2d1Y19zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPiAgCXN0cnVj dCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCA9IGd1Yy0+ZXhlY2J1Zl9jbGllbnQ7Cj4gIAlpbnQg Yl9yZXQ7Cj4KPiArCXJxLT5wcmV2aW91c19jb250ZXh0ID0gcnEtPmVuZ2luZS0+bGFzdF9jb250 ZXh0Owo+ICsJcnEtPmVuZ2luZS0+bGFzdF9jb250ZXh0ID0gcnEtPmN0eDsKPiArCj4gIAlfX2k5 MTVfZ2VtX3JlcXVlc3Rfc3VibWl0KHJxKTsKPgo+ICAJc3Bpbl9sb2NrKCZjbGllbnQtPndxX2xv Y2spOwo+IEBAIC0xNTIyLDYgKzE1MjUsNyBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFi bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJLyogVGFrZSBvdmVyIGZy b20gbWFudWFsIGNvbnRyb2wgb2YgRUxTUCAoZXhlY2xpc3RzKSAqLwo+ICAJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7Cj4gIAkJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9 IGk5MTVfZ3VjX3N1Ym1pdDsKPiArCQllbmdpbmUtPnNjaGVkdWxlID0gTlVMTDsKPgo+ICAJCS8q IFJlcGxheSB0aGUgY3VycmVudCBzZXQgb2YgcHJldmlvdXNseSBzdWJtaXR0ZWQgcmVxdWVzdHMg Ki8KPiAgCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcXVlc3QsCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCBjOTE3MWEwNTg0NzguLjNkYTRkNDY2ZTMzMiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTIzOSw3ICsyMzks OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF90aW1lbGluZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCj4gICAqLwo+ICB2b2lkIGludGVsX2VuZ2luZV9zZXR1cF9jb21t b24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICB7Cj4gLQlJTklUX0xJU1RfSEVB RCgmZW5naW5lLT5leGVjbGlzdF9xdWV1ZSk7Cj4gKwllbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlID0g UkJfUk9PVDsKPiArCWVuZ2luZS0+ZXhlY2xpc3RfZmlyc3QgPSBOVUxMOwo+Cj4gIAlpbnRlbF9l bmdpbmVfaW5pdF90aW1lbGluZShlbmdpbmUpOwo+ICAJaW50ZWxfZW5naW5lX2luaXRfaGFuZ2No ZWNrKGVuZ2luZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCAxODZjM2NjYjJj MzQuLjcwYWM3NGM5NTliZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTQz Miw5ICs0MzIsMTAgQEAgc3RhdGljIGJvb2wgY2FuX21lcmdlX2N0eChjb25zdCBzdHJ1Y3QgaTkx NV9nZW1fY29udGV4dCAqcHJldiwKPgo+ICBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqY3Vyc29yLCAqbGFzdDsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqbGFzdDsKPiAgCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZW5naW5lLT5leGVjbGlz dF9wb3J0Owo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCXN0cnVjdCByYl9ub2RlICpyYjsK PiAgCWJvb2wgc3VibWl0ID0gZmFsc2U7Cj4KPiAgCWxhc3QgPSBwb3J0LT5yZXF1ZXN0Owo+IEBA IC00NzEsNyArNDcyLDExIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCSAqLwo+Cj4gIAlzcGluX2xvY2tfaXJxc2F2ZSgm ZW5naW5lLT50aW1lbGluZS0+bG9jaywgZmxhZ3MpOwo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShj dXJzb3IsICZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlLCBleGVjbGlzdF9saW5rKSB7Cj4gKwlyYiA9 IGVuZ2luZS0+ZXhlY2xpc3RfZmlyc3Q7Cj4gKwl3aGlsZSAocmIpIHsKPiArCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKmN1cnNvciA9Cj4gKwkJCXJiX2VudHJ5KHJiLCB0eXBlb2YoKmN1 cnNvciksIHByaW90cmVlLm5vZGUpOwo+ICsKPiAgCQkvKiBDYW4gd2UgY29tYmluZSB0aGlzIHJl cXVlc3Qgd2l0aCB0aGUgY3VycmVudCBwb3J0PyBJdCBoYXMgdG8KPiAgCQkgKiBiZSB0aGUgc2Ft ZSBjb250ZXh0L3JpbmdidWZmZXIgYW5kIG5vdCBoYXZlIGFueSBleGNlcHRpb25zCj4gIAkJICog KGUuZy4gR1ZUIHNheWluZyBuZXZlciB0byBjb21iaW5lIGNvbnRleHRzKS4KPiBAQCAtNTAzLDE2 ICs1MDgsMjcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ICAJCQlwb3J0Kys7Cj4gIAkJfQo+Cj4gKwkJcmIgPSByYl9uZXh0 KHJiKTsKPiArCQlyYl9lcmFzZSgmY3Vyc29yLT5wcmlvdHJlZS5ub2RlLCAmZW5naW5lLT5leGVj bGlzdF9xdWV1ZSk7Cj4gKwkJUkJfQ0xFQVJfTk9ERSgmY3Vyc29yLT5wcmlvdHJlZS5ub2RlKTsK PiArCQljdXJzb3ItPnByaW90cmVlLnByaW9yaXR5ID0gSU5UX01BWDsKPiArCj4gKwkJLyogV2Ug a2VlcCB0aGUgcHJldmlvdXMgY29udGV4dCBhbGl2ZSB1bnRpbCB3ZSByZXRpcmUgdGhlCj4gKwkJ ICogZm9sbG93aW5nIHJlcXVlc3QuIFRoaXMgZW5zdXJlcyB0aGF0IGFueSB0aGUgY29udGV4dCBv YmplY3QKPiArCQkgKiBpcyBzdGlsbCBwaW5uZWQgZm9yIGFueSByZXNpZHVhbCB3cml0ZXMgdGhl IEhXIG1ha2VzIGludG8KPiArCQkgKiBpdCBvbiB0aGUgY29udGV4dCBzd2l0Y2ggaW50byB0aGUg bmV4dCBvYmplY3QgZm9sbG93aW5nIHRoZQo+ICsJCSAqIGJyZWFkY3J1bWIuIE90aGVyd2lzZSwg d2UgbWF5IHJldGlyZSB0aGUgY29udGV4dCB0b28gZWFybHkuCj4gKwkJICovCj4gKwkJY3Vyc29y LT5wcmV2aW91c19jb250ZXh0ID0gZW5naW5lLT5sYXN0X2NvbnRleHQ7Cj4gKwkJZW5naW5lLT5s YXN0X2NvbnRleHQgPSBjdXJzb3ItPmN0eDsKPiArCgpXaWxsIHdlIHdpbGwgbmVlZCBhIGtub2Ig dG8gY29udHJvbCB0aGUgYW1vdW50IG9mIGNvbnRleHQgbWVyZ2luZz8gVW50aWwgCnByZWVtcHRp b24gdGhhdCBpcywgc2ltaWxhciB0byBHdUMgcXVldWUgZGVwdGggIm5lcmZpbmciIGZyb20gdGhl IG90aGVyIApwYXRjaC4KCj4gIAkJX19pOTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChjdXJzb3IpOwo+ ICAJCWxhc3QgPSBjdXJzb3I7Cj4gIAkJc3VibWl0ID0gdHJ1ZTsKPiAgCX0KPiAgCWlmIChzdWJt aXQpIHsKPiAtCQkvKiBEZWNvdXBsZSBhbGwgdGhlIHJlcXVlc3RzIHN1Ym1pdHRlZCBmcm9tIHRo ZSBxdWV1ZSAqLwo+IC0JCWVuZ2luZS0+ZXhlY2xpc3RfcXVldWUubmV4dCA9ICZjdXJzb3ItPmV4 ZWNsaXN0X2xpbms7Cj4gLQkJY3Vyc29yLT5leGVjbGlzdF9saW5rLnByZXYgPSAmZW5naW5lLT5l eGVjbGlzdF9xdWV1ZTsKPiAtCj4gIAkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJnBvcnQtPnJl cXVlc3QsIGxhc3QpOwo+ICsJCWVuZ2luZS0+ZXhlY2xpc3RfZmlyc3QgPSByYjsKPiAgCX0KPiAg CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2ssIGZsYWdzKTsK Pgo+IEBAIC01OTUsMjYgKzYxMSw3NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRs ZXIodW5zaWduZWQgbG9uZyBkYXRhKQo+ICAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2 X3ByaXYsIGVuZ2luZS0+ZndfZG9tYWlucyk7Cj4gIH0KPgo+ICtzdGF0aWMgYm9vbCBpbnNlcnRf cmVxdWVzdChzdHJ1Y3QgaTkxNV9wcmlvdHJlZSAqcHQsIHN0cnVjdCByYl9yb290ICpyb290KQo+ ICt7Cj4gKwlzdHJ1Y3QgcmJfbm9kZSAqKnAsICpyYjsKPiArCWJvb2wgZmlyc3QgPSB0cnVlOwo+ ICsKPiArCS8qIG1vc3QgcG9zaXRpdmUgcHJpb3JpdHkgaXMgc2NoZWR1bGVkIGZpcnN0LCBlcXVh bCBwcmlvcml0aWVzIGZpZm8gKi8KPiArCXJiID0gTlVMTDsKPiArCXAgPSAmcm9vdC0+cmJfbm9k ZTsKPiArCXdoaWxlICgqcCkgewo+ICsJCXN0cnVjdCBpOTE1X3ByaW90cmVlICpwb3M7Cj4gKwo+ ICsJCXJiID0gKnA7Cj4gKwkJcG9zID0gcmJfZW50cnkocmIsIHR5cGVvZigqcG9zKSwgbm9kZSk7 Cj4gKwkJaWYgKHB0LT5wcmlvcml0eSA+IHBvcy0+cHJpb3JpdHkpIHsKPiArCQkJcCA9ICZyYi0+ cmJfbGVmdDsKPiArCQl9IGVsc2Ugewo+ICsJCQlwID0gJnJiLT5yYl9yaWdodDsKPiArCQkJZmly c3QgPSBmYWxzZTsKPiArCQl9Cj4gKwl9Cj4gKwlyYl9saW5rX25vZGUoJnB0LT5ub2RlLCByYiwg cCk7Cj4gKwlyYl9pbnNlcnRfY29sb3IoJnB0LT5ub2RlLCByb290KTsKPiArCj4gKwlyZXR1cm4g Zmlyc3Q7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXRfcmVxdWVzdChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gIHsKPiAgCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKPgo+ICAJYXNzZXJ0X3NwaW5f bG9ja2VkKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKPgo+IC0JLyogV2Uga2VlcCB0aGUgcHJl dmlvdXMgY29udGV4dCBhbGl2ZSB1bnRpbCB3ZSByZXRpcmUgdGhlIGZvbGxvd2luZwo+IC0JICog cmVxdWVzdC4gVGhpcyBlbnN1cmVzIHRoYXQgYW55IHRoZSBjb250ZXh0IG9iamVjdCBpcyBzdGls bCBwaW5uZWQKPiAtCSAqIGZvciBhbnkgcmVzaWR1YWwgd3JpdGVzIHRoZSBIVyBtYWtlcyBpbnRv IGl0IG9uIHRoZSBjb250ZXh0IHN3aXRjaAo+IC0JICogaW50byB0aGUgbmV4dCBvYmplY3QgZm9s bG93aW5nIHRoZSBicmVhZGNydW1iLiBPdGhlcndpc2UsIHdlIG1heQo+IC0JICogcmV0aXJlIHRo ZSBjb250ZXh0IHRvbyBlYXJseS4KPiAtCSAqLwo+IC0JcmVxdWVzdC0+cHJldmlvdXNfY29udGV4 dCA9IGVuZ2luZS0+bGFzdF9jb250ZXh0Owo+IC0JZW5naW5lLT5sYXN0X2NvbnRleHQgPSByZXF1 ZXN0LT5jdHg7Cj4gLQo+IC0JbGlzdF9hZGRfdGFpbCgmcmVxdWVzdC0+ZXhlY2xpc3RfbGluaywg JmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUpOwo+ICsJaWYgKGluc2VydF9yZXF1ZXN0KCZyZXF1ZXN0 LT5wcmlvdHJlZSwgJmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUpKQo+ICsJCWVuZ2luZS0+ZXhlY2xp c3RfZmlyc3QgPSAmcmVxdWVzdC0+cHJpb3RyZWUubm9kZTsKPiAgCWlmIChleGVjbGlzdHNfZWxz cF9pZGxlKGVuZ2luZSkpCj4gIAkJdGFza2xldF9oaV9zY2hlZHVsZSgmZW5naW5lLT5pcnFfdGFz a2xldCk7Cj4gIH0KPgo+ICtzdGF0aWMgdm9pZCB1cGRhdGVfcHJpb3JpdGllcyhzdHJ1Y3QgaTkx NV9wcmlvdHJlZSAqcHQsIGludCBwcmlvKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QgPQo+ICsJCWNvbnRhaW5lcl9vZihwdCwgc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0LCBwcmlvdHJlZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUg PSByZXF1ZXN0LT5lbmdpbmU7Cj4gKwlzdHJ1Y3QgaTkxNV9kZXBlbmRlbmN5ICpkZXA7Cj4gKwo+ ICsJaWYgKHByaW8gPD0gUkVBRF9PTkNFKHB0LT5wcmlvcml0eSkpCj4gKwkJcmV0dXJuOwo+ICsK PiArCS8qIFJlY3Vyc2l2ZWx5IGJ1bXAgYWxsIGRlcGVuZGVudCBwcmlvcml0aWVzIHRvIG1hdGNo IHRoZSBuZXcgcmVxdWVzdCAqLwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXAsICZwdC0+cHJl X2xpc3QsIHByZV9saW5rKQo+ICsJCXVwZGF0ZV9wcmlvcml0aWVzKGRlcC0+c2lnbmFsLCBwcmlv KTsKCkpvaG4gZ290IGluIHRyb3VibGUgZnJvbSByZWN1cnNpb24gaW4gaGlzIHNjaGVkdWxlciwg dXNlZCBmb3IgdGhlIHNhbWUgCnRoaW5nIEFGQUlSLiBPciB3YXMgaXQgdGhlIHByaW9yaXR5IGJ1 bXBpbmc/IEVpdGhlciB3YXksIGl0IGNvdWxkIGJlIAppbXBlcmF0aXZlIHRvIGF2b2lkIGl0LgoK PiArCj4gKwkvKiBGaWZvIGFuZCBkZXB0aC1maXJzdCByZXBsYWNlbWVudCBlbnN1cmUgb3VyIGRl cHMgZXhlY3V0ZSBiZWZvcmUgdXMgKi8KPiArCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+dGltZWxp bmUtPmxvY2spOwo+ICsJcHQtPnByaW9yaXR5ID0gcHJpbzsKPiArCWlmICghUkJfRU1QVFlfTk9E RSgmcHQtPm5vZGUpKSB7Cj4gKwkJcmJfZXJhc2UoJnB0LT5ub2RlLCAmZW5naW5lLT5leGVjbGlz dF9xdWV1ZSk7Cj4gKwkJaWYgKGluc2VydF9yZXF1ZXN0KHB0LCAmZW5naW5lLT5leGVjbGlzdF9x dWV1ZSkpCj4gKwkJCWVuZ2luZS0+ZXhlY2xpc3RfZmlyc3QgPSAmcHQtPm5vZGU7Cj4gKwl9Cj4g KwlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBleGVjbGlzdHNfc2NoZWR1bGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXF1ZXN0LCBpbnQgcHJpbykKPiArewo+ICsJLyogTWFrZSBzdXJlIHRoYXQgb3VyIGVudGly ZSBkZXBlbmRlbmN5IGNoYWluIHNoYXJlcyBvdXIgcHJpbyAqLwo+ICsJdXBkYXRlX3ByaW9yaXRp ZXMoJnJlcXVlc3QtPnByaW90cmVlLCBwcmlvKTsKPiArCj4gKwkvKiBYWFggRG8gd2UgbmVlZCB0 byBwcmVlbXB0IHRvIG1ha2Ugcm9vbSBmb3IgdXMgYW5kIG91ciBkZXBzPyAqLwo+ICt9CgpIbSwg d2h5IGlzbid0IHNjaGVkdWxpbmcgYmFja2VuZCBhZ25vc3RpYz8gTWFrZXMgaXQgbXVjaCBzaW1w bGVyIHRvIGRvIAp0aGUgZmlyc3QgaW1wbGVtZW50YXRpb24gbGlrZSB0aGlzPwoKPiArCj4gIGlu dCBpbnRlbF9sb2dpY2FsX3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7Cj4gQEAgLTE2NTEsOCArMTcxOCwxMCBAQCB2b2lkIGlu dGVsX2V4ZWNsaXN0c19lbmFibGVfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gIAllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKPgo+IC0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYs IGlkKQo+ICsJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7Cj4gIAkJZW5n aW5lLT5zdWJtaXRfcmVxdWVzdCA9IGV4ZWNsaXN0c19zdWJtaXRfcmVxdWVzdDsKPiArCQllbmdp bmUtPnNjaGVkdWxlID0gZXhlY2xpc3RzX3NjaGVkdWxlOwo+ICsJfQo+ICB9Cj4KPiAgc3RhdGlj IHZvaWQKPiBAQCAtMTY2NSw2ICsxNzM0LDcgQEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCWVuZ2luZS0+ZW1pdF9icmVhZGNy dW1iID0gZ2VuOF9lbWl0X2JyZWFkY3J1bWI7Cj4gIAllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9z eiA9IGdlbjhfZW1pdF9icmVhZGNydW1iX3N6Owo+ICAJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9 IGV4ZWNsaXN0c19zdWJtaXRfcmVxdWVzdDsKPiArCWVuZ2luZS0+c2NoZWR1bGUgPSBleGVjbGlz dHNfc2NoZWR1bGU7Cj4KPiAgCWVuZ2luZS0+aXJxX2VuYWJsZSA9IGdlbjhfbG9naWNhbF9yaW5n X2VuYWJsZV9pcnE7Cj4gIAllbmdpbmUtPmlycV9kaXNhYmxlID0gZ2VuOF9sb2dpY2FsX3Jpbmdf ZGlzYWJsZV9pcnE7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGlu ZGV4IDc1OTkxYTNjNjk0Yi4uY2JjMTQ4ODYzYTAzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC0zNDgsNyArMzQ4LDggQEAgc3RydWN0IGludGVsX2Vu Z2luZV9jcyB7Cj4gIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0Owo+ICAJ CXVuc2lnbmVkIGludCBjb3VudDsKPiAgCX0gZXhlY2xpc3RfcG9ydFsyXTsKPiAtCXN0cnVjdCBs aXN0X2hlYWQgZXhlY2xpc3RfcXVldWU7Cj4gKwlzdHJ1Y3QgcmJfcm9vdCBleGVjbGlzdF9xdWV1 ZTsKPiArCXN0cnVjdCByYl9ub2RlICpleGVjbGlzdF9maXJzdDsKPiAgCXVuc2lnbmVkIGludCBm d19kb21haW5zOwo+ICAJYm9vbCBkaXNhYmxlX2xpdGVfcmVzdG9yZV93YTsKPiAgCWJvb2wgcHJl ZW1wdF93YTsKPgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK