From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Price Subject: Re: [PATCH 1/2] drm/panfrost: Allow passing extra information about BOs used by a job Date: Fri, 13 Sep 2019 14:44:14 +0100 Message-ID: <18586dc0-aa00-67e7-ec67-fdcded5a03eb@arm.com> References: <20190913111748.21071-1-boris.brezillon@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by gabe.freedesktop.org (Postfix) with ESMTP id 3C7356F3BA for ; Fri, 13 Sep 2019 13:44:17 +0000 (UTC) In-Reply-To: <20190913111748.21071-1-boris.brezillon@collabora.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon , Rob Herring , Tomeu Vizoso , Alyssa Rosenzweig Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMTMvMDkvMjAxOSAxMjoxNywgQm9yaXMgQnJlemlsbG9uIHdyb3RlOgo+IFRoZSBSRUFEL1dS SVRFIGZsYWdzIGFyZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHdlIHdhbnQgdG8gYXZvaWQKPiBz ZXJpYWxpemF0aW9uIG9mIGpvYnMgdGhhdCByZWFkIGZyb20gdGhlIHNhbWUgQk8gYnV0IG5ldmVy IHdyaXRlIHRvIGl0Lgo+IFRoZSBOT19JTVBMSUNJVF9GRU5DRSBtaWdodCBiZSB1c2VmdWwgd2hl biB0aGUgdXNlciBrbm93cyB0aGUgQk8gaXMKPiBzaGFyZWQgYnV0IGpvYnMgYXJlIHVzaW5nIGRp ZmZlcmVudCBwb3J0aW9ucyBvZiB0aGUgYnVmZmVyLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEJvcmlz IEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGNvbGxhYm9yYS5jb20+CgpHb29kIGZlYXR1cmUg LSB3ZSBjb3VsZCBkbyB3aXRoIGFuIChlYXN5KSB3YXkgb2YgdGhlIHVzZXIgZHJpdmVyCmRldGVj dGluZyB0aGlzIC0gc28gaXQgbWlnaHQgYmUgd29ydGggYnVtcGluZyB0aGUgZHJpdmVyIHZlcnNp b24gZm9yIHRoaXM/CgpTb21lIG1vcmUgY29tbWVudHMgYmVsb3cuCgo+IC0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZHJ2LmMgfCAgNzIgKysrKysrKysrLS0KPiAgZHJp dmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jIHwgMTY0ICsrKysrKysrKysrKysr KysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmggfCAg MTEgKy0KPiAgaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaCAgICAgICAgIHwgIDQxICsr KysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDI0NyBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jCj4gaW5kZXggZDc0 NDQyZDcxMDQ4Li4wODA4MmZkNTU3YzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Bh bmZyb3N0L3BhbmZyb3N0X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3Bh bmZyb3N0X2Rydi5jCj4gQEAgLTExOSwyMCArMTE5LDc2IEBAIHBhbmZyb3N0X2xvb2t1cF9ib3Mo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkgIHN0cnVjdCBkcm1fcGFuZnJvc3Rfc3VibWl0 ICphcmdzLAo+ICAJCSAgc3RydWN0IHBhbmZyb3N0X2pvYiAqam9iKQo+ICB7Cj4gLQlqb2ItPmJv X2NvdW50ID0gYXJncy0+Ym9faGFuZGxlX2NvdW50Owo+ICsJc3RydWN0IGRybV9wYW5mcm9zdF9z dWJtaXRfYm8gKmJvX2Rlc2NzID0gTlVMTDsKPiArCXUzMiAqaGFuZGxlcyA9IE5VTEw7Cj4gKwl1 MzIgaSwgYm9fY291bnQ7Cj4gKwlpbnQgcmV0ID0gMDsKPiAgCj4gLQlpZiAoIWpvYi0+Ym9fY291 bnQpCj4gKwlib19jb3VudCA9IGFyZ3MtPmJvX2Rlc2NfY291bnQgPwo+ICsJCSAgIGFyZ3MtPmJv X2Rlc2NfY291bnQgOiBhcmdzLT5ib19oYW5kbGVfY291bnQ7Cj4gKwlpZiAoIWJvX2NvdW50KQo+ ICAJCXJldHVybiAwOwo+ICAKPiAtCWpvYi0+aW1wbGljaXRfZmVuY2VzID0ga3ZtYWxsb2NfYXJy YXkoam9iLT5ib19jb3VudCwKPiAtCQkJCSAgc2l6ZW9mKHN0cnVjdCBkbWFfZmVuY2UgKiksCj4g Kwlqb2ItPmJvcyA9IGt2bWFsbG9jX2FycmF5KGJvX2NvdW50LCBzaXplb2YoKmpvYi0+Ym9zKSwK PiAgCQkJCSAgR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOwo+IC0JaWYgKCFqb2ItPmltcGxpY2l0 X2ZlbmNlcykKPiArCWlmICgham9iLT5ib3MpCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+IC0J cmV0dXJuIGRybV9nZW1fb2JqZWN0c19sb29rdXAoZmlsZV9wcml2LAo+IC0JCQkJICAgICAgKHZv aWQgX191c2VyICopKHVpbnRwdHJfdClhcmdzLT5ib19oYW5kbGVzLAo+IC0JCQkJICAgICAgam9i LT5ib19jb3VudCwgJmpvYi0+Ym9zKTsKPiArCWpvYi0+Ym9fY291bnQgPSBib19jb3VudDsKPiAr CWJvX2Rlc2NzID0ga3ZtYWxsb2NfYXJyYXkoYm9fY291bnQsIHNpemVvZigqYm9fZGVzY3MpLAo+ ICsJCQkJICBHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7Cj4gKwlpZiAoIWJvX2Rlc2NzKSB7Cj4g KwkJcmV0ID0gLUVOT01FTTsKPiArCQlnb3RvIG91dDsKClRoaXMgY2FuIGJlIGp1c3QgInJldHVy biAtRU5PTUVNIiAtIGJvdGggaGFuZGxlcyBhbmQgYm9fZGVzY3Mgd2lsbCBiZSBOVUxMLgoKPiAr CX0KPiArCj4gKwlpZiAoIWFyZ3MtPmJvX2Rlc2NfY291bnQpIHsKPiArCQloYW5kbGVzID0ga3Zt YWxsb2NfYXJyYXkoYm9fY291bnQsIHNpemVvZigqaGFuZGxlcyksCj4gKwkJCQkJIEdGUF9LRVJO RUwpOwo+ICsJCWlmICghaGFuZGxlcykgewo+ICsJCQlyZXQgPS1FTk9NRU07Cj4gKwkJCWdvdG8g b3V0Owo+ICsJCX0KPiArCj4gKwkJaWYgKGNvcHlfZnJvbV91c2VyKGhhbmRsZXMsCj4gKwkJCQkg ICAodm9pZCBfX3VzZXIgKikodWludHB0cl90KWFyZ3MtPmJvX2hhbmRsZXMsCj4gKwkJCQkgICBq b2ItPmJvX2NvdW50ICogc2l6ZW9mKCpoYW5kbGVzKSkpIHsKPiArCQkJcmV0ID0gLUVGQVVMVDsK PiArCQkJZ290byBvdXQ7Cj4gKwkJfQo+ICsKPiArCQlmb3IgKGkgPSAwOyBpIDwgam9iLT5ib19j b3VudDsgaSsrKSB7Cj4gKwkJCWJvX2Rlc2NzW2ldLmhhbmRsZSA9IGhhbmRsZXNbaV07Cj4gKwkJ CWJvX2Rlc2NzW2ldLmZsYWdzID0gUEFORlJPU1RfU1VCTUlUX0JPX1dSSVRFIHwKPiArCQkJCQkg ICAgUEFORlJPU1RfU1VCTUlUX0JPX1JFQUQ7CgpZb3UgY2FuIHVzZSBQQU5GUk9TVF9TVUJNSVRf Qk9fUlcgaGVyZS4KCj4gKwkJfQo+ICsJfSBlbHNlIGlmIChjb3B5X2Zyb21fdXNlcihib19kZXNj cywKPiArCQkJCSAgKHZvaWQgX191c2VyICopKHVpbnRwdHJfdClhcmdzLT5ib19kZXNjcywKPiAr CQkJCSAgam9iLT5ib19jb3VudCAqIHNpemVvZigqYm9fZGVzY3MpKSkgewo+ICsJCXJldCA9IC1F RkFVTFQ7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IGpvYi0+ Ym9fY291bnQ7IGkrKykgewo+ICsJCWlmICgoYm9fZGVzY3NbaV0uZmxhZ3MgJiB+UEFORlJPU1Rf U1VCTUlUX0JPX1ZBTElEX0ZMQUdTKSB8fAo+ICsgICAgICAgICAgICAgICAgICAgICEoYm9fZGVz Y3NbaV0uZmxhZ3MgJiBQQU5GUk9TVF9TVUJNSVRfQk9fUlcpKSB7Cj4gKwkJCXJldCA9IC1FSU5W QUw7Cj4gKwkJCWdvdG8gb3V0Owo+ICsJCX0KPiArCj4gKwkJam9iLT5ib3NbaV0uZmxhZ3MgPSBi b19kZXNjc1tpXS5mbGFnczsKPiArCQlqb2ItPmJvc1tpXS5vYmogPSBkcm1fZ2VtX29iamVjdF9s b29rdXAoZmlsZV9wcml2LAo+ICsJCQkJCQkJYm9fZGVzY3NbaV0uaGFuZGxlKTsKPiArCQlpZiAo IWpvYi0+Ym9zW2ldLm9iaikgewo+ICsJCQlyZXQgPSAtRU5PRU5UOwo+ICsJCQlnb3RvIG91dDsK PiArCQl9Cj4gKwl9Cj4gKwo+ICtvdXQ6Cj4gKwlrdmZyZWUoaGFuZGxlcyk7Cj4gKwlrdmZyZWUo Ym9fZGVzY3MpOwo+ICsJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAgLyoqCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYwo+IGluZGV4IDA1Yzg1ZjQ1YTBkZS4uZTRiNzRmZGU5 MzM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2Iu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYwo+IEBAIC0x OTMsMjQgKzE5MywxMTYgQEAgc3RhdGljIHZvaWQgcGFuZnJvc3Rfam9iX2h3X3N1Ym1pdChzdHJ1 Y3QgcGFuZnJvc3Rfam9iICpqb2IsIGludCBqcykKPiAgCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNw ZW5kKHBmZGV2LT5kZXYpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBwYW5mcm9zdF9hY3F1aXJl X29iamVjdF9mZW5jZXMoc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqYm9zLAo+IC0JCQkJCSAgIGlu dCBib19jb3VudCwKPiAtCQkJCQkgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqaW1wbGljaXRfZmVuY2Vz KQo+ICtzdGF0aWMgaW50IHBhbmZyb3N0X2FjcXVpcmVfb2JqZWN0X2ZlbmNlcyhzdHJ1Y3QgcGFu ZnJvc3Rfam9iICpqb2IpCj4gIHsKPiAtCWludCBpOwo+ICsJaW50IGksIHJldDsKPiAgCj4gLQlm b3IgKGkgPSAwOyBpIDwgYm9fY291bnQ7IGkrKykKPiAtCQlpbXBsaWNpdF9mZW5jZXNbaV0gPSBk bWFfcmVzdl9nZXRfZXhjbF9yY3UoYm9zW2ldLT5yZXN2KTsKPiArCWZvciAoaSA9IDA7IGkgPCBq b2ItPmJvX2NvdW50OyBpKyspIHsKPiArCQlzdHJ1Y3QgcGFuZnJvc3Rfam9iX2JvX2Rlc2MgKmJv ID0gJmpvYi0+Ym9zW2ldOwo+ICsJCXN0cnVjdCBkbWFfcmVzdiAqcm9iaiA9IGJvLT5vYmotPnJl c3Y7Cj4gKwo+ICsJCWlmICghKGpvYi0+Ym9zW2ldLmZsYWdzICYgUEFORlJPU1RfU1VCTUlUX0JP X1dSSVRFKSkgewo+ICsJCQlyZXQgPSBkbWFfcmVzdl9yZXNlcnZlX3NoYXJlZChyb2JqLCAxKTsK PiArCQkJaWYgKHJldCkKPiArCQkJCXJldHVybiByZXQ7Cj4gKwkJfQo+ICsKPiArCQlpZiAoYm8t PmZsYWdzICYgUEFORlJPU1RfU1VCTUlUX0JPX05PX0lNUExJQ0lUX0ZFTkNFKQo+ICsJCQljb250 aW51ZTsKPiArCj4gKwkJaWYgKGJvLT5mbGFncyAmIFBBTkZST1NUX1NVQk1JVF9CT19XUklURSkg ewo+ICsJCQlyZXQgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShyb2JqLCAmYm8tPmV4Y2wsCj4g KwkJCQkJCSAgICAgICZiby0+c2hhcmVkX2NvdW50LAo+ICsJCQkJCQkgICAgICAmYm8tPnNoYXJl ZCk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsJCX0gZWxzZSB7Cj4gKwkJ CWJvLT5leGNsID0gZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KHJvYmopOwo+ICsJCX0KClRoZSBpbXBs ZW1lbnRhdGlvbiBvZiBOT19JTVBMSUNJVF9GRU5DRSBzZWVtcyBhIGJpdCBzdHJhbmdlIHRvIG1l OiBSRUFECnwgTk9fSU1QTElDSVRfRkVOQ0Ugc3RpbGwgcmVzZXJ2ZXMgc3BhY2UgZm9yIGEgc2hh cmVkIGZlbmNlLiBJIGRvbid0CnVuZGVyc3RhbmQgd2h5LgoKPiArCX0KPiArCj4gKwlyZXR1cm4g MDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgcGFuZnJvc3RfYXR0YWNoX29iamVjdF9mZW5jZXMo c3RydWN0IGRybV9nZW1fb2JqZWN0ICoqYm9zLAo+IC0JCQkJCSAgaW50IGJvX2NvdW50LAo+IC0J CQkJCSAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCj4gK3N0YXRpYyB2b2lkIHBhbmZyb3N0X2F0 dGFjaF9vYmplY3RfZmVuY2VzKHN0cnVjdCBwYW5mcm9zdF9qb2IgKmpvYikKPiAgewo+ICAJaW50 IGk7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IGJvX2NvdW50OyBpKyspCj4gLQkJZG1hX3Jlc3Zf YWRkX2V4Y2xfZmVuY2UoYm9zW2ldLT5yZXN2LCBmZW5jZSk7Cj4gKwlmb3IgKGkgPSAwOyBpIDwg am9iLT5ib19jb3VudDsgaSsrKSB7Cj4gKwkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBq b2ItPmJvc1tpXS5vYmo7Cj4gKwo+ICsJCWlmIChqb2ItPmJvc1tpXS5mbGFncyAmIFBBTkZST1NU X1NVQk1JVF9CT19XUklURSkKPiArCQkJZG1hX3Jlc3ZfYWRkX2V4Y2xfZmVuY2Uob2JqLT5yZXN2 LAo+ICsJCQkJCQlqb2ItPnJlbmRlcl9kb25lX2ZlbmNlKTsKPiArCQllbHNlCj4gKwkJCWRtYV9y ZXN2X2FkZF9zaGFyZWRfZmVuY2Uob2JqLT5yZXN2LAo+ICsJCQkJCQkgIGpvYi0+cmVuZGVyX2Rv bmVfZmVuY2UpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHBhbmZyb3N0X2pvYl9sb2Nr X2JvcyhzdHJ1Y3QgcGFuZnJvc3Rfam9iICpqb2IsCj4gKwkJCQkgc3RydWN0IHd3X2FjcXVpcmVf Y3R4ICphY3F1aXJlX2N0eCkKPiArewo+ICsJaW50IGNvbnRlbmRlZCA9IC0xOwo+ICsJaW50IGks IHJldDsKPiArCj4gKwl3d19hY3F1aXJlX2luaXQoYWNxdWlyZV9jdHgsICZyZXNlcnZhdGlvbl93 d19jbGFzcyk7Cj4gKwo+ICtyZXRyeToKPiArCWlmIChjb250ZW5kZWQgIT0gLTEpIHsKPiArCQlz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGpvYi0+Ym9zW2NvbnRlbmRlZF0ub2JqOwo+ICsK PiArCQlyZXQgPSB3d19tdXRleF9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZSgmb2JqLT5yZXN2LT5s b2NrLAo+ICsJCQkJCQkgICAgICAgYWNxdWlyZV9jdHgpOwoKZG1hX3Jlc3ZfbG9ja19zbG90X2lu dGVycnVwdGlibGUoKT8KCj4gKwkJaWYgKHJldCkgewo+ICsJCQl3d19hY3F1aXJlX2RvbmUoYWNx dWlyZV9jdHgpOwo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJCX0KPiArCX0KPiArCj4gKwlmb3IgKGkg PSAwOyBpIDwgam9iLT5ib19jb3VudDsgaSsrKSB7Cj4gKwkJaWYgKGkgPT0gY29udGVuZGVkKQo+ ICsJCQljb250aW51ZTsKPiArCj4gKwkJcmV0ID0gd3dfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxl KCZqb2ItPmJvc1tpXS5vYmotPnJlc3YtPmxvY2ssCj4gKwkJCQkJCSAgYWNxdWlyZV9jdHgpOwoK ZG1hX3Jlc3ZfbG9ja19pbnRlcnJ1cHRpYmxlKCk/Cgo+ICsJCWlmIChyZXQpIHsKPiArCQkJaW50 IGo7Cj4gKwo+ICsJCQlmb3IgKGogPSAwOyBqIDwgaTsgaisrKQo+ICsJCQkJd3dfbXV0ZXhfdW5s b2NrKCZqb2ItPmJvc1tqXS5vYmotPnJlc3YtPmxvY2spOwo+ICsKPiArCQkJaWYgKGNvbnRlbmRl ZCAhPSAtMSAmJiBjb250ZW5kZWQgPj0gaSkgewo+ICsJCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpjb250ZW5kZWRfb2JqOwo+ICsKPiArCQkJCWNvbnRlbmRlZF9vYmogPSBqb2ItPmJvc1tjb250 ZW5kZWRdLm9iajsKPiArCQkJCXd3X211dGV4X3VubG9jaygmY29udGVuZGVkX29iai0+cmVzdi0+ bG9jayk7Cj4gKwkJCX0KPiArCj4gKwkJCWlmIChyZXQgPT0gLUVERUFETEspIHsKPiArCQkJCWNv bnRlbmRlZCA9IGk7Cj4gKwkJCQlnb3RvIHJldHJ5Owo+ICsJCQl9Cj4gKwo+ICsJCQl3d19hY3F1 aXJlX2RvbmUoYWNxdWlyZV9jdHgpOwo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJCX0KPiArCX0KPiAr Cj4gKwl3d19hY3F1aXJlX2RvbmUoYWNxdWlyZV9jdHgpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9 CgpUaGlzIGxvb2tzIGxpa2UgYSBjb3B5IG9mIGRybV9nZW1fbG9ja19yZXNlcnZhdGlvbnMoKS4g VGhlIG9ubHkgcmVhc29uCmZvciBpdCBhcyBmYXIgYXMgSSBjYW4gc2VlIGlzIGJlY2F1c2Ugd2Ug bm93IGhhdmUgYW4gYXJyYXkgb2Ygc3RydWN0CnBhbmZyb3N0X2pvYl9ib19kZXNjIHJhdGhlciB0 aGFuIGEgZGlyZWN0IGFycmF5IG9mIHN0cnVjdApkcm1fZ2VtX29iamVjdC4gSSdtIG5vdCBzdXJl IGhhdmluZyBldmVyeXRoaW5nIG5lYXRseSBpbiBvbmUgc3RydWN0dXJlCmlzIHdvcnRoIHRoaXMg Y29zdD8KCj4gKwo+ICtzdGF0aWMgdm9pZCBwYW5mcm9zdF9qb2JfdW5sb2NrX2JvcyhzdHJ1Y3Qg cGFuZnJvc3Rfam9iICpqb2IsCj4gKwkJCQkgICAgc3RydWN0IHd3X2FjcXVpcmVfY3R4ICphY3F1 aXJlX2N0eCkKPiArewo+ICsJaW50IGk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IGpvYi0+Ym9f Y291bnQ7IGkrKykKPiArCQl3d19tdXRleF91bmxvY2soJmpvYi0+Ym9zW2ldLm9iai0+cmVzdi0+ bG9jayk7Cj4gKwo+ICsJd3dfYWNxdWlyZV9maW5pKGFjcXVpcmVfY3R4KTsKPiAgfT4KPiAgaW50 IHBhbmZyb3N0X2pvYl9wdXNoKHN0cnVjdCBwYW5mcm9zdF9qb2IgKmpvYikKPiBAQCAtMjIzLDgg KzMxNSw3IEBAIGludCBwYW5mcm9zdF9qb2JfcHVzaChzdHJ1Y3QgcGFuZnJvc3Rfam9iICpqb2Ip Cj4gIAo+ICAJbXV0ZXhfbG9jaygmcGZkZXYtPnNjaGVkX2xvY2spOwo+ICAKPiAtCXJldCA9IGRy bV9nZW1fbG9ja19yZXNlcnZhdGlvbnMoam9iLT5ib3MsIGpvYi0+Ym9fY291bnQsCj4gLQkJCQkJ ICAgICZhY3F1aXJlX2N0eCk7Cj4gKwlyZXQgPSBwYW5mcm9zdF9qb2JfbG9ja19ib3Moam9iLCAm YWNxdWlyZV9jdHgpOwo+ICAJaWYgKHJldCkgewo+ICAJCW11dGV4X3VubG9jaygmcGZkZXYtPnNj aGVkX2xvY2spOwo+ICAJCXJldHVybiByZXQ7Cj4gQEAgLTI0MCwxOCArMzMxLDE2IEBAIGludCBw YW5mcm9zdF9qb2JfcHVzaChzdHJ1Y3QgcGFuZnJvc3Rfam9iICpqb2IpCj4gIAo+ICAJa3JlZl9n ZXQoJmpvYi0+cmVmY291bnQpOyAvKiBwdXQgYnkgc2NoZWR1bGVyIGpvYiBjb21wbGV0aW9uICov Cj4gIAo+IC0JcGFuZnJvc3RfYWNxdWlyZV9vYmplY3RfZmVuY2VzKGpvYi0+Ym9zLCBqb2ItPmJv X2NvdW50LAo+IC0JCQkJICAgICAgIGpvYi0+aW1wbGljaXRfZmVuY2VzKTsKPiArCXBhbmZyb3N0 X2FjcXVpcmVfb2JqZWN0X2ZlbmNlcyhqb2IpOwo+ICAKPiAgCWRybV9zY2hlZF9lbnRpdHlfcHVz aF9qb2IoJmpvYi0+YmFzZSwgZW50aXR5KTsKPiAgCj4gIAltdXRleF91bmxvY2soJnBmZGV2LT5z Y2hlZF9sb2NrKTsKPiAgCj4gLQlwYW5mcm9zdF9hdHRhY2hfb2JqZWN0X2ZlbmNlcyhqb2ItPmJv cywgam9iLT5ib19jb3VudCwKPiAtCQkJCSAgICAgIGpvYi0+cmVuZGVyX2RvbmVfZmVuY2UpOwo+ ICsJcGFuZnJvc3RfYXR0YWNoX29iamVjdF9mZW5jZXMoam9iKTsKPiAgCj4gIHVubG9jazoKPiAt CWRybV9nZW1fdW5sb2NrX3Jlc2VydmF0aW9ucyhqb2ItPmJvcywgam9iLT5ib19jb3VudCwgJmFj cXVpcmVfY3R4KTsKPiArCXBhbmZyb3N0X2pvYl91bmxvY2tfYm9zKGpvYiwgJmFjcXVpcmVfY3R4 KTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gQEAgLTI2NywyMCArMzU2LDIyIEBAIHN0YXRp YyB2b2lkIHBhbmZyb3N0X2pvYl9jbGVhbnVwKHN0cnVjdCBrcmVmICpyZWYpCj4gIAkJCWRtYV9m ZW5jZV9wdXQoam9iLT5pbl9mZW5jZXNbaV0pOwo+ICAJCWt2ZnJlZShqb2ItPmluX2ZlbmNlcyk7 Cj4gIAl9Cj4gLQlpZiAoam9iLT5pbXBsaWNpdF9mZW5jZXMpIHsKPiAtCQlmb3IgKGkgPSAwOyBp IDwgam9iLT5ib19jb3VudDsgaSsrKQo+IC0JCQlkbWFfZmVuY2VfcHV0KGpvYi0+aW1wbGljaXRf ZmVuY2VzW2ldKTsKPiAtCQlrdmZyZWUoam9iLT5pbXBsaWNpdF9mZW5jZXMpOwo+ICsKPiArCWZv ciAoaSA9IDA7IGkgPCBqb2ItPmJvX2NvdW50OyBpKyspIHsKPiArCQl1bnNpZ25lZCBpbnQgajsK PiArCj4gKwkJZG1hX2ZlbmNlX3B1dChqb2ItPmJvc1tpXS5leGNsKTsKPiArCQlmb3IgKGogPSAw OyBqIDwgam9iLT5ib3NbaV0uc2hhcmVkX2NvdW50OyBqKyspCj4gKwkJCWRtYV9mZW5jZV9wdXQo am9iLT5ib3NbaV0uc2hhcmVkW2pdKTsKPiAgCX0KPiArCj4gIAlkbWFfZmVuY2VfcHV0KGpvYi0+ ZG9uZV9mZW5jZSk7Cj4gIAlkbWFfZmVuY2VfcHV0KGpvYi0+cmVuZGVyX2RvbmVfZmVuY2UpOwo+ ICAKPiAtCWlmIChqb2ItPmJvcykgewo+IC0JCWZvciAoaSA9IDA7IGkgPCBqb2ItPmJvX2NvdW50 OyBpKyspCj4gLQkJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChqb2ItPmJvc1tpXSk7Cj4g LQkJa3ZmcmVlKGpvYi0+Ym9zKTsKPiAtCX0KPiArCWZvciAoaSA9IDA7IGkgPCBqb2ItPmJvX2Nv dW50OyBpKyspCj4gKwkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGpvYi0+Ym9zW2ldLm9i aik7Cj4gIAo+ICsJa3ZmcmVlKGpvYi0+Ym9zKTsKPiAgCWtmcmVlKGpvYik7Cj4gIH0KPiAgCj4g QEAgLTMxNCwxMSArNDA1LDIyIEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICpwYW5mcm9zdF9q b2JfZGVwZW5kZW5jeShzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc2NoZWRfam9iCj4gIAkJfQo+ICAJ fQo+ICAKPiAtCS8qIEltcGxpY2l0IGZlbmNlcywgbWF4LiBvbmUgcGVyIEJPICovCj4gKwkvKiBJ bXBsaWNpdCBmZW5jZXMgKi8KPiAgCWZvciAoaSA9IDA7IGkgPCBqb2ItPmJvX2NvdW50OyBpKysp IHsKPiAtCQlpZiAoam9iLT5pbXBsaWNpdF9mZW5jZXNbaV0pIHsKPiAtCQkJZmVuY2UgPSBqb2It PmltcGxpY2l0X2ZlbmNlc1tpXTsKPiAtCQkJam9iLT5pbXBsaWNpdF9mZW5jZXNbaV0gPSBOVUxM Owo+ICsJCXVuc2lnbmVkIGludCBqOwo+ICsKPiArCQlpZiAoam9iLT5ib3NbaV0uZXhjbCkgewo+ ICsJCQlmZW5jZSA9IGpvYi0+Ym9zW2ldLmV4Y2w7Cj4gKwkJCWpvYi0+Ym9zW2ldLmV4Y2wgPSBO VUxMOwo+ICsJCQlyZXR1cm4gZmVuY2U7Cj4gKwkJfQo+ICsKPiArCQlmb3IgKGogPSAwOyBqIDwg am9iLT5ib3NbaV0uc2hhcmVkX2NvdW50OyBqKyspIHsKPiArCQkJaWYgKCFqb2ItPmJvc1tpXS5z aGFyZWRbal0pCj4gKwkJCQljb250aW51ZTsKPiArCj4gKwkJCWZlbmNlID0gam9iLT5ib3NbaV0u c2hhcmVkW2pdOwo+ICsJCQlqb2ItPmJvc1tpXS5zaGFyZWRbal0gPSBOVUxMOwo+ICAJCQlyZXR1 cm4gZmVuY2U7Cj4gIAkJfQo+ICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFu ZnJvc3QvcGFuZnJvc3Rfam9iLmggYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rf am9iLmgKPiBpbmRleCA2MjQ1NDEyOGE3OTIuLjUzNDQwNjQwYTZlMyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmgKPiBAQCAtMTEsNiArMTEsMTQgQEAgc3RydWN0 IHBhbmZyb3N0X2RldmljZTsKPiAgc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3Q7Cj4gIHN0cnVj dCBwYW5mcm9zdF9maWxlX3ByaXY7Cj4gIAo+ICtzdHJ1Y3QgcGFuZnJvc3Rfam9iX2JvX2Rlc2Mg ewo+ICsJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Cj4gKwlzdHJ1Y3QgZG1hX2ZlbmNlICpl eGNsOwo+ICsJc3RydWN0IGRtYV9mZW5jZSAqKnNoYXJlZDsKPiArCXVuc2lnbmVkIGludCBzaGFy ZWRfY291bnQ7Cj4gKwl1MzIgZmxhZ3M7Cj4gK307Cj4gKwo+ICBzdHJ1Y3QgcGFuZnJvc3Rfam9i IHsKPiAgCXN0cnVjdCBkcm1fc2NoZWRfam9iIGJhc2U7Cj4gIAo+IEBAIC0zMSw4ICszOSw3IEBA IHN0cnVjdCBwYW5mcm9zdF9qb2Igewo+ICAJX191MzIgZmx1c2hfaWQ7Cj4gIAo+ICAJLyogRXhj bHVzaXZlIGZlbmNlcyB3ZSBoYXZlIHRha2VuIGZyb20gdGhlIEJPcyB0byB3YWl0IGZvciAqLwoK Q29tbWVudCBuZWVkcyB1cGRhdGluZwoKPiAtCXN0cnVjdCBkbWFfZmVuY2UgKippbXBsaWNpdF9m ZW5jZXM7Cj4gLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipib3M7Cj4gKwlzdHJ1Y3QgcGFuZnJv c3Rfam9iX2JvX2Rlc2MgKmJvczsKPiAgCXUzMiBib19jb3VudDsKPiAgCj4gIAkvKiBGZW5jZSB0 byBiZSBzaWduYWxlZCBieSBkcm0tc2NoZWQgb25jZSBpdHMgZG9uZSB3aXRoIHRoZSBqb2IgKi8K PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaCBiL2luY2x1ZGUv dWFwaS9kcm0vcGFuZnJvc3RfZHJtLmgKPiBpbmRleCBlYzE5ZGIxZWVhZDguLjAyOWM2YWUxYjFm MCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL3BhbmZyb3N0X2RybS5oCj4gKysrIGIv aW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaAo+IEBAIC00MCw2ICs0MCwyOCBAQCBleHRl cm4gIkMiIHsKPiAgI2RlZmluZSBEUk1fSU9DVExfUEFORlJPU1RfUEVSRkNOVF9EVU1QCQlEUk1f SU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUEFORlJPU1RfUEVSRkNOVF9EVU1QLCBzdHJ1Y3Qg ZHJtX3BhbmZyb3N0X3BlcmZjbnRfZHVtcCkKPiAgCj4gICNkZWZpbmUgUEFORlJPU1RfSkRfUkVR X0ZTICgxIDw8IDApCj4gKwo+ICsjZGVmaW5lIFBBTkZST1NUX1NVQk1JVF9CT19SRUFECQkJKDEg PDwgMCkKPiArI2RlZmluZSBQQU5GUk9TVF9TVUJNSVRfQk9fV1JJVEUJCSgxIDw8IDEpCj4gKyNk ZWZpbmUgUEFORlJPU1RfU1VCTUlUX0JPX1JXCQkJKFBBTkZST1NUX1NVQk1JVF9CT19SRUFEIHwg XAo+ICsJCQkJCQkgUEFORlJPU1RfU1VCTUlUX0JPX1dSSVRFKQo+ICsjZGVmaW5lIFBBTkZST1NU X1NVQk1JVF9CT19OT19JTVBMSUNJVF9GRU5DRQkoMSA8PCAyKQo+ICsjZGVmaW5lIFBBTkZST1NU X1NVQk1JVF9CT19WQUxJRF9GTEFHUwkJXAo+ICsJKFBBTkZST1NUX1NVQk1JVF9CT19SVyB8IFBB TkZST1NUX1NVQk1JVF9CT19OT19JTVBMSUNJVF9GRU5DRSkKPiArCj4gKy8qKgo+ICsgKiBzdHJ1 Y3QgZHJtX3BhbmZyb3N0X3N1Ym1pdF9ibyAtIEJPIGRlc2NyaXB0b3IgcGFzc2VkIHRvIHRoZSBz dWJtaXQgaW9jdGwuCj4gKyAqCj4gKyAqIFVzZWZ1bCB0byBnaXZlIGRldGFpbGVkIGluZm9ybWF0 aW9uIGFib3V0IEJPcyB1c2VkIGJ5IGEgZ2l2ZW4gam9iLgo+ICsgKgo+ICsgKiBAaGFuZGxlOiB0 aGUgR0VNIGhhbmRsZQo+ICsgKiBAZmxhZ3M6IGEgY29tYmluYXRpb24gb2YgUEFORlJPU1RfU1VC TUlUX0JPXyoKPiArICovCj4gK3N0cnVjdCBkcm1fcGFuZnJvc3Rfc3VibWl0X2JvIHsKPiArCV9f dTMyIGhhbmRsZTsKPiArCV9fdTMyIGZsYWdzOwo+ICt9Owo+ICsKPiAgLyoqCj4gICAqIHN0cnVj dCBkcm1fcGFuZnJvc3Rfc3VibWl0IC0gaW9jdGwgYXJndW1lbnQgZm9yIHN1Ym1pdHRpbmcgY29t bWFuZHMgdG8gdGhlIDNECj4gICAqIGVuZ2luZS4KPiBAQCAtNjgsNiArOTAsMjUgQEAgc3RydWN0 IGRybV9wYW5mcm9zdF9zdWJtaXQgewo+ICAKPiAgCS8qKiBBIGNvbWJpbmF0aW9uIG9mIFBBTkZS T1NUX0pEX1JFUV8qICovCj4gIAlfX3UzMiByZXF1aXJlbWVudHM7Cj4gKwo+ICsJLyoqCj4gKwkg KiBQb2ludGVyIHRvIGEgdTMyIGFycmF5IG9mICZkcm1fcGFuZnJvc3Rfc3VibWl0X2JvX2Rlc2Mg b2JqZWN0cy4gVGhpcwo+ICsJICogZmllbGQgaXMgbWVhbnQgdG8gcmVwbGFjZSAmZHJtX3BhbmZy b3N0X3N1Ym1pdC5ib19oYW5kbGVzIHdoaWNoIGRpZAo+ICsJICogbm90IHByb3ZpZGUgZW5vdWdo IGluZm9ybWF0aW9uIHRvIHJlbGF4IHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuCj4gKwkgKiBqb2Jz IHRoYXQgb25seSBvbmx5IHJlYWQgdGhlIEJPIHRoZXkgc2hhcmUuIFdoZW4gYm90aAo+ICsJICog JmRybV9wYW5mcm9zdF9zdWJtaXQuYm9faGFuZGxlcyBhbmQgJmRybV9wYW5mcm9zdF9zdWJtaXQu Ym9fZGVzY3MKPiArCSAqIGFyZSBwcm92aWRlZCwgZHJtX3BhbmZyb3N0X3N1Ym1pdC5ib19oYW5k bGVzIGlzIGlnbm9yZWQuCj4gKwkgKi8KPiArCV9fdTY0IGJvX2Rlc2NzOwo+ICsKPiArCS8qKgo+ ICsJICogTnVtYmVyIG9mIEJPIGRlc2NyaXB0b3JzIHBhc3NlZCBpbiAoc2l6ZSBpcyB0aGF0IHRp bWVzCj4gKwkgKiBzaXplb2YoZHJtX3BhbmZyb3N0X3N1Ym1pdF9ib19kZXNjKSkuCj4gKwkgKi8K PiArCV9fdTMyIGJvX2Rlc2NfY291bnQ7CgpXZSBkb24ndCByZWFsbHkgbmVlZCBhbm90aGVyIGNv dW50IGZpZWxkLiBib19oYW5kbGVfY291bnQgY291bGQgYmUKcmUtdXNlZC4gSW5kZWVkIHRoaXMg Y291bGQgZXZlbiBiZSBoYW5kbGVkIHdpdGgganVzdCBhIGZsYWdzIGZpZWxkIHdpdGgKYSBuZXcg ZmxhZyBzcGVjaWZ5aW5nIHRoYXQgYm9faGFuZGxlcyBubyBsb25nZXIgcG9pbnRzIHRvIGhhbmRs ZXMgYnV0IHRvCmJvX2Rlc2Mgb2JqZWN0cyBpbnN0ZWFkLgoKU3RldmUKCj4gKwo+ICsJLyoqIFBh ZGRpbmcsIG11c3QgYmUgMC4gKi8KPiArCV9fdTMyIHBhZDsKPiAgfTsKPiAgCj4gIC8qKgo+IAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs