From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 17/18] drm/i915: Unify legacy/execlists submit_execbuf callbacks Date: Fri, 22 Jul 2016 11:45:07 +0300 Message-ID: <1469177107.5916.18.camel@linux.intel.com> References: <1469020330-1071-1-git-send-email-chris@chris-wilson.co.uk> <1469020330-1071-18-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id CD73F6EAD8 for ; Fri, 22 Jul 2016 08:45:10 +0000 (UTC) In-Reply-To: <1469020330-1071-18-git-send-email-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 T24ga2UsIDIwMTYtMDctMjAgYXQgMTQ6MTIgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBO b3cgdGhhdCBlbWl0dGluZyByZXF1ZXN0cyBpcyBpZGVudGljYWwgYmV0d2VlbiBsZWdhY3kgYW5k IGV4ZWNsaXN0cywgd2UKPiBjYW4gdXNlIHRoZSBzYW1lIGZ1bmN0aW9uIHRvIGJ1aWxkIHVwIHRo ZSByaW5nIGZvciBzdWJtaXR0aW5nIHRvIGVpdGhlcgo+IGVuZ2luZS4gKFdpdGggdGhlIGV4Y2Vw dGlvbiBvZiBpOTE1X3N3aXRjaF9jb250ZXh0cygpLCBidXQgaW4gdGltZSB0aGF0Cj4gd2lsbCBh bHNvIGJlIGhhbmRsZWQgZ3JhY2VmdWxseS4pCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpUaGlzIHNlcmllcyBjcmF2ZXMgZm9yIHNv bWUgVC1iJ3MuCgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5A bGludXguaW50ZWwuY29tPgoKPiAtLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIwIC0tLS0tCj4gwqBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDIgLQo+IMKg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jwqDCoMKgwqB8wqDCoMKgNyAr LQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHzCoMKgMjQg KysrKy0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuY8KgwqDCoMKgwqDCoMKg wqDCoMKgwqB8IDEyMyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IMKgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDQgLQo+ IMKgNiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAxNTkgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggM2Y2NzQzMTU3N2UzLi5mMTg4YzlhOWI3 NDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTcwNSwxOCArMTcwNSw2IEBA IHN0cnVjdCBpOTE1X3ZpcnR1YWxfZ3B1IHsKPiDCoAlib29sIGFjdGl2ZTsKPiDCoH07Cj4gwqAK PiAtc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgewo+IC0Jc3RydWN0IGRybV9kZXZpY2XC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqZGV2Owo+IC0Jc3RydWN0IGRybV9maWxlwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpmaWxlOwo+IC0JdWludDMyX3TCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkaXNwYXRjaF9mbGFnczsK PiAtCXVpbnQzMl90wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgYXJnc19iYXRjaF9zdGFydF9vZmZzZXQ7Cj4gLQl1aW50NjRfdMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJhdGNoX29ial92bV9vZmZzZXQ7Cj4gLQlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdMKgwqDCoMKgwqDCoCpiYXRjaF9vYmo7Cj4gLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpjdHg7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3TCoMKgwqDCoMKgKnJlcXVlc3Q7Cj4gLX07Cj4gLQo+IMKgLyogdXNlZCBpbiBjb21wdXRpbmcg dGhlIG5ldyB3YXRlcm1hcmtzIHN0YXRlICovCj4gwqBzdHJ1Y3QgaW50ZWxfd21fY29uZmlnIHsK PiDCoAl1bnNpZ25lZCBpbnQgbnVtX3BpcGVzX2FjdGl2ZTsKPiBAQCAtMjAxNiw5ICsyMDA0LDYg QEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+IMKgCj4gwqAJLyogQWJzdHJhY3QgdGhlIHN1 Ym1pc3Npb24gbWVjaGFuaXNtIChsZWdhY3kgcmluZ2J1ZmZlciBvciBleGVjbGlzdHMpIGF3YXkg Ki8KPiDCoAlzdHJ1Y3Qgewo+IC0JCWludCAoKmV4ZWNidWZfc3VibWl0KShzdHJ1Y3QgaTkxNV9l eGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+IC0JCQkJwqDCoMKgwqDCoMKgc3RydWN0IGRybV9p OTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKPiAtCQkJCcKgwqDCoMKgwqDCoHN0cnVjdCBsaXN0 X2hlYWQgKnZtYXMpOwo+IMKgCQl2b2lkICgqY2xlYW51cF9lbmdpbmUpKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSk7Cj4gwqAJCXZvaWQgKCpzdG9wX2VuZ2luZSkoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKTsKPiDCoAo+IEBAIC0yOTkwLDExICsyOTc1LDYgQEAgaW50IGk5 MTVfZ2VtX3NldF9kb21haW5faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKPiDCoAkJCcKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiDCoGlu dCBpOTE1X2dlbV9zd19maW5pc2hfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKPiDCoAkJCcKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gLXZv aWQgaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgbGlzdF9oZWFkICp2 bWFzLAo+IC0JCQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiAtaW50IGk5 MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFt cyAqcGFyYW1zLAo+IC0JCQkJwqDCoMKgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAq YXJncywKPiAtCQkJCcKgwqDCoHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpOwo+IMKgaW50IGk5MTVf Z2VtX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiDCoAkJ CXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiDCoGludCBpOTE1X2dlbV9leGVjYnVmZmVy MihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+IGluZGV4IDc3ZDdjMGIwMTJmNC4uOWZkZWNlZjM0ZmE4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gQEAgLTQ1MzEsMTEgKzQ1MzEsOSBAQCBpbnQgaTkxNV9nZW1faW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4 KTsKPiDCoAo+IMKgCWlmICghaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7Cj4gLQkJZGV2X3ByaXYt Pmd0LmV4ZWNidWZfc3VibWl0ID0gaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uOwo+IMKg CQlkZXZfcHJpdi0+Z3QuY2xlYW51cF9lbmdpbmUgPSBpbnRlbF9lbmdpbmVfY2xlYW51cDsKPiDC oAkJZGV2X3ByaXYtPmd0LnN0b3BfZW5naW5lID0gaW50ZWxfZW5naW5lX3N0b3A7Cj4gwqAJfSBl bHNlIHsKPiAtCQlkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJtaXQgPSBpbnRlbF9leGVjbGlzdHNf c3VibWlzc2lvbjsKPiDCoAkJZGV2X3ByaXYtPmd0LmNsZWFudXBfZW5naW5lID0gaW50ZWxfbG9n aWNhbF9yaW5nX2NsZWFudXA7Cj4gwqAJCWRldl9wcml2LT5ndC5zdG9wX2VuZ2luZSA9IGludGVs X2xvZ2ljYWxfcmluZ19zdG9wOwo+IMKgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jCj4gaW5kZXggZTFlZWQwZjQ0OWM2Li43MmIyMWM3Yjc1NDcgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTg5Myw4ICs4OTMsOSBAQCBp bnQgaTkxNV9zd2l0Y2hfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkK PiDCoHsKPiDCoAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2luZTsK PiDCoAo+IC0JV0FSTl9PTihpOTE1LmVuYWJsZV9leGVjbGlzdHMpOwo+IMKgCWxvY2tkZXBfYXNz ZXJ0X2hlbGQoJnJlcS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlpZiAoaTkxNS5lbmFi bGVfZXhlY2xpc3RzKQo+ICsJCXJldHVybiAwOwo+IMKgCj4gwqAJaWYgKCFyZXEtPmN0eC0+ZW5n aW5lW2VuZ2luZS0+aWRdLnN0YXRlKSB7Cj4gwqAJCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICp0 byA9IHJlcS0+Y3R4Owo+IEBAIC05NDIsOSArOTQzLDcgQEAgaW50IGk5MTVfZ2VtX3N3aXRjaF90 b19rZXJuZWxfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAJ CWlmIChJU19FUlIocmVxKSkKPiDCoAkJCXJldHVybiBQVFJfRVJSKHJlcSk7Cj4gwqAKPiAtCQly ZXQgPSAwOwo+IC0JCWlmICghaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+IC0JCQlyZXQgPSBpOTE1 X3N3aXRjaF9jb250ZXh0KHJlcSk7Cj4gKwkJcmV0ID0gaTkxNV9zd2l0Y2hfY29udGV4dChyZXEp Owo+IMKgCQlpOTE1X2FkZF9yZXF1ZXN0X25vX2ZsdXNoKHJlcSk7Cj4gwqAJCWlmIChyZXQpCj4g wqAJCQlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMKPiBpbmRleCAyZDlmMWY0YmMwNTguLmUzMDI0Nzc0MThkOCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAtNDIsNiArNDIsMTggQEAK PiDCoAo+IMKgI2RlZmluZSBCQVRDSF9PRkZTRVRfQklBUyAoMjU2KjEwMjQpCj4gwqAKPiArc3Ry dWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgewo+ICsJc3RydWN0IGRybV9kZXZpY2XCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqZGV2Owo+ICsJc3RydWN0IGRybV9maWxlwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpmaWxlOwo+ICsJdTMyCQkJCcKgZGlzcGF0Y2hfZmxh Z3M7Cj4gKwl1MzIJCQkJwqBhcmdzX2JhdGNoX3N0YXJ0X29mZnNldDsKPiArCXUzMgkJCQnCoGJh dGNoX29ial92bV9vZmZzZXQ7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzwqDCoMKgwqDCoMKg wqDCoMKgwqAqZW5naW5lOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3TCoMKgwqDCoMKg wqAqYmF0Y2hfb2JqOwo+ICsJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHTCoMKgwqDCoMKgwqDCoMKg wqAqY3R4Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0wqDCoMKgwqDCoCpyZXF1ZXN0 Owo+ICt9Owo+ICsKPiDCoHN0cnVjdCBlYl92bWFzIHsKPiDCoAlzdHJ1Y3QgbGlzdF9oZWFkIHZt YXM7Cj4gwqAJaW50IGFuZDsKPiBAQCAtMTExNyw3ICsxMTI5LDcgQEAgaTkxNV9nZW1fdmFsaWRh dGVfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUs Cj4gwqAJcmV0dXJuIGN0eDsKPiDCoH0KPiDCoAo+IC12b2lkCj4gK3N0YXRpYyB2b2lkCj4gwqBp OTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMs Cj4gwqAJCQkJwqDCoMKgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gwqB7Cj4g QEAgLTEyNDQsMTAgKzEyNTYsMTAgQEAgZXJyOgo+IMKgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ IMKgfQo+IMKgCj4gLWludAo+IC1pOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0 IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPiAtCQkJwqDCoMKgwqDCoMKgwqBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAo+IC0JCQnCoMKgwqDCoMKgwqDCoHN0 cnVjdCBsaXN0X2hlYWQgKnZtYXMpCj4gK3N0YXRpYyBpbnQKPiArZXhlY2J1Zl9zdWJtaXQoc3Ry dWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPiArCcKgwqDCoMKgwqDCoMKgc3Ry dWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKPiArCcKgwqDCoMKgwqDCoMKgc3Ry dWN0IGxpc3RfaGVhZCAqdm1hcykKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBwYXJhbXMtPnJlcXVlc3QtPmk5MTU7Cj4gwqAJdTY0IGV4ZWNfc3RhcnQsIGV4 ZWNfbGVuOwo+IEBAIC0xNjM2LDcgKzE2NDgsNyBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gwqAJcGFyYW1zLT5iYXRjaF9vYmrC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA9IGJhdGNoX29iajsKPiDCoAlwYXJhbXMtPmN0 eMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD0gY3R4Owo+IMKgCj4g LQlyZXQgPSBkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJtaXQocGFyYW1zLCBhcmdzLCAmZWItPnZt YXMpOwo+ICsJcmV0ID0gZXhlY2J1Zl9zdWJtaXQocGFyYW1zLCBhcmdzLCAmZWItPnZtYXMpOwo+ IMKgZXJyX3JlcXVlc3Q6Cj4gwqAJaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFuZHMo cGFyYW1zKTsKPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggYmNlMzdkMGQ0 MzFmLi44ZDE1ODlmMGVhN2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC02 NDIsMzkgKzY0Miw2IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiDCoAlzcGluX3VubG9ja19iaCgmZW5n aW5lLT5leGVjbGlzdF9sb2NrKTsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgaW50IGV4ZWNsaXN0c19t b3ZlX3RvX2dwdShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAtCQkJCcKgc3Ry dWN0IGxpc3RfaGVhZCAqdm1hcykKPiAtewo+IC0JY29uc3QgdW5zaWduZWQgb3RoZXJfcmluZ3Mg PSB+aW50ZWxfZW5naW5lX2ZsYWcocmVxLT5lbmdpbmUpOwo+IC0Jc3RydWN0IGk5MTVfdm1hICp2 bWE7Cj4gLQl1aW50MzJfdCBmbHVzaF9kb21haW5zID0gMDsKPiAtCWJvb2wgZmx1c2hfY2hpcHNl dCA9IGZhbHNlOwo+IC0JaW50IHJldDsKPiAtCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwg dm1hcywgZXhlY19saXN0KSB7Cj4gLQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9 IHZtYS0+b2JqOwo+IC0KPiAtCQlpZiAob2JqLT5hY3RpdmUgJiBvdGhlcl9yaW5ncykgewo+IC0J CQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHJlcSk7Cj4gLQkJCWlmIChyZXQpCj4g LQkJCQlyZXR1cm4gcmV0Owo+IC0JCX0KPiAtCj4gLQkJaWYgKG9iai0+YmFzZS53cml0ZV9kb21h aW4gJiBJOTE1X0dFTV9ET01BSU5fQ1BVKQo+IC0JCQlmbHVzaF9jaGlwc2V0IHw9IGk5MTVfZ2Vt X2NsZmx1c2hfb2JqZWN0KG9iaiwgZmFsc2UpOwo+IC0KPiAtCQlmbHVzaF9kb21haW5zIHw9IG9i ai0+YmFzZS53cml0ZV9kb21haW47Cj4gLQl9Cj4gLQo+IC0JaWYgKGZsdXNoX2RvbWFpbnMgJiBJ OTE1X0dFTV9ET01BSU5fR1RUKQo+IC0JCXdtYigpOwo+IC0KPiAtCS8qIFVuY29uZGl0aW9uYWxs eSBpbnZhbGlkYXRlIGdwdSBjYWNoZXMgYW5kIGVuc3VyZSB0aGF0IHdlIGRvIGZsdXNoCj4gLQnC oCogYW55IHJlc2lkdWFsIHdyaXRlcyBmcm9tIHRoZSBwcmV2aW91cyBiYXRjaC4KPiAtCcKgKi8K PiAtCXJldHVybiByZXEtPmVuZ2luZS0+ZW1pdF9mbHVzaChyZXEsIEk5MTVfR0VNX0dQVV9ET01B SU5TLCAwKTsKPiAtfQo+IC0KPiDCoGludCBpbnRlbF9sb2dpY2FsX3JpbmdfYWxsb2NfcmVxdWVz dF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+IMKgewo+IMKg CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKPiBAQCAt Nzc2LDk2ICs3NDMsNiBAQCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiDCoAlyZXR1cm4gMDsKPiDCoH0K PiDCoAo+IC0vKioKPiAtICogaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oKSAtIHN1Ym1pdCBh IGJhdGNoYnVmZmVyIGZvciBleGVjdXRpb24sIEV4ZWNsaXN0cyBzdHlsZQo+IC0gKiBAcGFyYW1z OiBleGVjYnVmZmVyIGNhbGwgcGFyYW1ldGVycy4KPiAtICogQGFyZ3M6IGV4ZWNidWZmZXIgY2Fs bCBhcmd1bWVudHMuCj4gLSAqIEB2bWFzOiBsaXN0IG9mIHZtYXMuCj4gLSAqCj4gLSAqIFRoaXMg aXMgdGhlIGV2aWwgdHdpbiB2ZXJzaW9uIG9mIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lv bi4gSXQgYWJzdHJhY3RzCj4gLSAqIGF3YXkgdGhlIHN1Ym1pc3Npb24gZGV0YWlscyBvZiB0aGUg ZXhlY2J1ZmZlciBpb2N0bCBjYWxsLgo+IC0gKgo+IC0gKiBSZXR1cm46IG5vbi16ZXJvIGlmIHRo ZSBzdWJtaXNzaW9uIGZhaWxzLgo+IC0gKi8KPiAtaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNz aW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gLQkJCcKgwqDCoMKg wqDCoMKgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKPiAtCQkJwqDCoMKg wqDCoMKgwqBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZcKgwqDCoMKgwqDCoMKgKmRldiA9IHBhcmFtcy0+ZGV2Owo+IC0Jc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0gcGFyYW1zLT5lbmdpbmU7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9 IHBhcmFtcy0+cmVxdWVzdC0+cmluZzsKPiAtCXU2NCBleGVjX3N0YXJ0Owo+IC0JaW50IGluc3Rw X21vZGU7Cj4gLQl1MzIgaW5zdHBfbWFzazsKPiAtCWludCByZXQ7Cj4gLQo+IC0JaW5zdHBfbW9k ZSA9IGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NPTlNUQU5UU19NQVNLOwo+IC0JaW5zdHBfbWFz ayA9IEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKPiAtCXN3aXRjaCAoaW5zdHBfbW9kZSkgewo+ IC0JY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9HRU5FUkFMOgo+IC0JY2FzZSBJOTE1X0VY RUNfQ09OU1RBTlRTX0FCU09MVVRFOgo+IC0JY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9T VVJGQUNFOgo+IC0JCWlmIChpbnN0cF9tb2RlICE9IDAgJiYgZW5naW5lLT5pZCAhPSBSQ1MpIHsK PiAtCQkJRFJNX0RFQlVHKCJub24tMCByZWwgY29uc3RhbnRzIG1vZGUgb24gbm9uLVJDU1xuIik7 Cj4gLQkJCXJldHVybiAtRUlOVkFMOwo+IC0JCX0KPiAtCj4gLQkJaWYgKGluc3RwX21vZGUgIT0g ZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7Cj4gLQkJCWlmIChpbnN0cF9tb2Rl ID09IEk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0UpIHsKPiAtCQkJCURSTV9ERUJVRygi cmVsIHN1cmZhY2UgY29uc3RhbnRzIG1vZGUgaW52YWxpZCBvbiBnZW41K1xuIik7Cj4gLQkJCQly ZXR1cm4gLUVJTlZBTDsKPiAtCQkJfQo+IC0KPiAtCQkJLyogVGhlIEhXIGNoYW5nZWQgdGhlIG1l YW5pbmcgb24gdGhpcyBiaXQgb24gZ2VuNiAqLwo+IC0JCQlpbnN0cF9tYXNrICY9IH5JOTE1X0VY RUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOwo+IC0JCX0KPiAtCQlicmVhazsKPiAtCWRlZmF1bHQ6 Cj4gLQkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggdW5rbm93biBjb25zdGFudHM6ICVkXG4iLCBp bnN0cF9tb2RlKTsKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gLQlpZiAoYXJncy0+ ZmxhZ3MgJiBJOTE1X0VYRUNfR0VON19TT0xfUkVTRVQpIHsKPiAtCQlEUk1fREVCVUcoInNvbCBy ZXNldCBpcyBnZW43IG9ubHlcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+IC0KPiAt CXJldCA9IGV4ZWNsaXN0c19tb3ZlX3RvX2dwdShwYXJhbXMtPnJlcXVlc3QsIHZtYXMpOwo+IC0J aWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCWlmIChlbmdpbmUtPmlkID09IFJDUyAm Jgo+IC0JwqDCoMKgwqBpbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNf bW9kZSkgewo+IC0JCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocGFyYW1zLT5yZXF1ZXN0LCA0KTsK PiAtCQlpZiAocmV0KQo+IC0JCQlyZXR1cm4gcmV0Owo+IC0KPiAtCQlpbnRlbF9yaW5nX2VtaXQo cmluZywgTUlfTk9PUCk7Cj4gLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNU RVJfSU1NKDEpKTsKPiAtCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIElOU1RQTSk7Cj4gLQkJ aW50ZWxfcmluZ19lbWl0KHJpbmcsIGluc3RwX21hc2sgPDwgMTYgfCBpbnN0cF9tb2RlKTsKPiAt CQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Cj4gLQo+IC0JCWRldl9wcml2LT5yZWxhdGl2ZV9j b25zdGFudHNfbW9kZSA9IGluc3RwX21vZGU7Cj4gLQl9Cj4gLQo+IC0JZXhlY19zdGFydCA9IHBh cmFtcy0+YmF0Y2hfb2JqX3ZtX29mZnNldCArCj4gLQkJwqDCoMKgwqDCoGFyZ3MtPmJhdGNoX3N0 YXJ0X29mZnNldDsKPiAtCj4gLQlyZXQgPSBlbmdpbmUtPmVtaXRfYmJfc3RhcnQocGFyYW1zLT5y ZXF1ZXN0LAo+IC0JCQkJwqDCoMKgwqBleGVjX3N0YXJ0LCBhcmdzLT5iYXRjaF9sZW4sCj4gLQkJ CQnCoMKgwqDCoHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1 cm4gcmV0Owo+IC0KPiAtCXRyYWNlX2k5MTVfZ2VtX3JpbmdfZGlzcGF0Y2gocGFyYW1zLT5yZXF1 ZXN0LCBwYXJhbXMtPmRpc3BhdGNoX2ZsYWdzKTsKPiAtCj4gLQlpOTE1X2dlbV9leGVjYnVmZmVy X21vdmVfdG9fYWN0aXZlKHZtYXMsIHBhcmFtcy0+cmVxdWVzdCk7Cj4gLQo+IC0JcmV0dXJuIDA7 Cj4gLX0KPiAtCj4gwqB2b2lkIGludGVsX2V4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxLCAqdG1wOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gaW5kZXggMjEy ZWU3YzQzNDM4Li4wZjljOTkyNTk4NWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ IEBAIC05NSwxMCArOTUsNiBAQCB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Io c3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiDCoC8qIEV4ZWNsaXN0cyAqLwo+IMKgaW50 IGludGVsX3Nhbml0aXplX2VuYWJsZV9leGVjbGlzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+IMKgCQkJCcKgwqDCoMKgaW50IGVuYWJsZV9leGVjbGlzdHMpOwo+IC1zdHJ1 Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtczsKPiAtaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNz aW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gLQkJCcKgwqDCoMKg wqDCoMKgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKPiAtCQkJwqDCoMKg wqDCoMKgwqBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKPiDCoAo+IMKgdm9pZCBpbnRlbF9leGVj bGlzdHNfY2FuY2VsX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4g wqAKLS0gCkpvb25hcyBMYWh0aW5lbgpPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpJbnRl bCBDb3Jwb3JhdGlvbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK