From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 20/22] drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+ Date: Tue, 5 Feb 2019 09:24:24 +0000 Message-ID: <988e6487-f53c-7b4f-6d15-ad19bb97b391@linux.intel.com> References: <20190204132214.9459-1-chris@chris-wilson.co.uk> <20190204132214.9459-21-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 mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2D1276E115 for ; Tue, 5 Feb 2019 09:24:18 +0000 (UTC) In-Reply-To: <20190204132214.9459-21-chris@chris-wilson.co.uk> Content-Language: en-US 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 Ck9uIDA0LzAyLzIwMTkgMTM6MjIsIENocmlzIFdpbHNvbiB3cm90ZToKPiBIYXZpbmcgaW50cm9k dWNlZCBwZXItY29udGV4dCBzZXFubywgd2Ugbm93IGhhdmUgYSBtZWFucyB0byBpZGVudGl0eQo+ IHByb2dyZXNzIGFjcm9zcyB0aGUgc3lzdGVtIHdpdGhvdXQgZmVlbCBvZiByb2xsYmFjayBhcyBi ZWZlbGwgdGhlCj4gZ2xvYmFsX3NlcW5vLiBUaGF0IGlzIHdlIGNhbiBwcm9ncmFtIGEgTUlfU0VN QVBIT1JFX1dBSVQgb3BlcmF0aW9uIGluCj4gYWR2YW5jZSBvZiBzdWJtaXNzaW9uIHNhZmUgaW4g dGhlIGtub3dsZWRnZSB0aGF0IG91ciB0YXJnZXQgc2Vxbm8gYW5kCj4gYWRkcmVzcyBpcyBzdGFi bGUuCj4gCj4gSG93ZXZlciwgc2luY2Ugd2UgYXJlIHRlbGxpbmcgdGhlIEdQVSB0byBidXN5LXNw aW4gb24gdGhlIHRhcmdldCBhZGRyZXNzCj4gdW50aWwgaXQgbWF0Y2hlcyB0aGUgc2lnbmFsaW5n IHNlcW5vLCB3ZSBvbmx5IHdhbnQgdG8gZG8gc28gd2hlbiB3ZSBhcmUKPiBzdXJlIHRoYXQgYnVz eS1zcGluIHdpbGwgYmUgY29tcGxldGVkIHF1aWNrbHkuIFRvIGFjaGlldmUgdGhpcyB3ZSBvbmx5 Cj4gc3VibWl0IHRoZSByZXF1ZXN0IHRvIEhXIG9uY2UgdGhlIHNpZ25hbGVyIGlzIGl0c2VsZiBl eGVjdXRpbmcgKG1vZHVsbwo+IHByZWVtcHRpb24gY2F1c2luZyB1cyB0byB3YWl0IGxvbmdlciks IGFuZCB3ZSBvbmx5IGRvIHNvIGZvciBkZWZhdWx0IGFuZAo+IGFib3ZlIHByaW9yaXR5IHJlcXVl c3RzIChzbyB0aGF0IGlkbGUgcHJpb3JpdHkgdGFza3MgbmV2ZXIgdGhlbXNlbHZlcwo+IGhvZyB0 aGUgR1BVIHdhaXRpbmcgZm9yIG90aGVycykuCj4gCj4gdjM6IERyb3AgdGhlIG9sZGVyIE5FUSBi cmFuY2gsIG5vdyB3ZSBwaW4gdGhlIHNpZ25hbGVyJ3MgSFdTUCBhbnl3YXkuCj4gdjQ6IFRlbGwg dGhlIHdvcmxkIGFuZCBpbmNsdWRlIGl0IGFzIHBhcnQgb2Ygc2NoZWR1bGVyIGNhcHMuCgpMb29r cyBva2F5IHRvIG1lLgoKSnVzdCBhIHBhcmFncmFwaCBhYm91dCBwb3dlciBhbmQgcGVyZm9ybWFu Y2UsIHdpdGggaWRlYWxseSBhIGxhdGVzdCAKdGFibGUgb2YgcmVzdWx0cyBmcm9tIG1lZGlhLWJl bmNoLCB3b3VsZCBiZSB0aGUgdXN1YWwgcmVxdWlyZW1lbnQgZm9yIAp0aGVzZSBraW5kIG9mIGFk ZGl0aW9ucy4KClJlZ2FyZHMsCgpUdnJ0a28KCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jICAgICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrKysrLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggICAgICAgfCAgIDEgKwo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jICAgICAgfCAgIDQgKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuaCAgICAgIHwgICAzICsKPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgIHwgICAxICsKPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2dwdV9jb21tYW5kcy5oIHwgICA1ICsKPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgIHwgICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaCAgIHwgICA3ICsrCj4gICBpbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmggICAgICAgICAgICAgICB8ICAgMSArCj4gICAxMCBmaWxlcyBjaGFuZ2VkLCAxNTYg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK PiBpbmRleCBhN2FhYTFhYzRjOTkuLjdlMzhlMmI2MWEyZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYwo+IEBAIC0zNDksNyArMzQ5LDcgQEAgc3RhdGljIGludCBpOTE1X2dldHBhcmFtX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCXZhbHVlID0gbWlu X3QoaW50LCBJTlRFTF9QUEdUVChkZXZfcHJpdiksIEk5MTVfR0VNX1BQR1RUX0ZVTEwpOwo+ICAg CQlicmVhazsKPiAgIAljYXNlIEk5MTVfUEFSQU1fSEFTX1NFTUFQSE9SRVM6Cj4gLQkJdmFsdWUg PSAwOwo+ICsJCXZhbHVlID0gISEoZGV2X3ByaXYtPmNhcHMuc2NoZWR1bGVyICYgSTkxNV9TQ0hF RFVMRVJfQ0FQX1NFTUFQSE9SRVMpOwo+ICAgCQlicmVhazsKPiAgIAljYXNlIEk5MTVfUEFSQU1f SEFTX1NFQ1VSRV9CQVRDSEVTOgo+ICAgCQl2YWx1ZSA9IGNhcGFibGUoQ0FQX1NZU19BRE1JTik7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBpbmRleCAwNTdiZmZhNTY3MDAuLjEx NmJkOTY0OGRiNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVl c3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gQEAgLTIy LDggKzIyLDkgQEAKPiAgICAqCj4gICAgKi8KPiAgIAo+IC0jaW5jbHVkZSA8bGludXgvcHJlZmV0 Y2guaD4KPiAgICNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UtYXJyYXkuaD4KPiArI2luY2x1ZGUg PGxpbnV4L2lycV93b3JrLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9wcmVmZXRjaC5oPgo+ICAgI2lu Y2x1ZGUgPGxpbnV4L3NjaGVkLmg+Cj4gICAjaW5jbHVkZSA8bGludXgvc2NoZWQvY2xvY2suaD4K PiAgICNpbmNsdWRlIDxsaW51eC9zY2hlZC9zaWduYWwuaD4KPiBAQCAtMzIsOSArMzMsMTYgQEAK PiAgICNpbmNsdWRlICJpOTE1X2FjdGl2ZS5oIgo+ICAgI2luY2x1ZGUgImk5MTVfcmVzZXQuaCIK PiAgIAo+ICtzdHJ1Y3QgZXhlY3V0ZV9jYiB7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cj4g KwlzdHJ1Y3QgaXJxX3dvcmsgd29yazsKPiArCXN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZTsK PiArfTsKPiArCj4gICBzdGF0aWMgc3RydWN0IGk5MTVfZ2xvYmFsX3JlcXVlc3Qgewo+ICAgCXN0 cnVjdCBrbWVtX2NhY2hlICpzbGFiX3JlcXVlc3RzOwo+ICAgCXN0cnVjdCBrbWVtX2NhY2hlICpz bGFiX2RlcGVuZGVuY2llczsKPiArCXN0cnVjdCBrbWVtX2NhY2hlICpzbGFiX2V4ZWN1dGVfY2Jz Owo+ICAgfSBnbG9iYWw7Cj4gICAKPiAgIHN0YXRpYyBjb25zdCBjaGFyICppOTE1X2ZlbmNlX2dl dF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKPiBAQCAtMzMxLDYgKzMzOSw2 OSBAQCB2b2lkIGk5MTVfcmVxdWVzdF9yZXRpcmVfdXB0byhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpy cSkKPiAgIAl9IHdoaWxlICh0bXAgIT0gcnEpOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyB2b2lkIGly cV9leGVjdXRlX2NiKHN0cnVjdCBpcnFfd29yayAqd3JrKQo+ICt7Cj4gKwlzdHJ1Y3QgZXhlY3V0 ZV9jYiAqY2IgPSBjb250YWluZXJfb2Yod3JrLCB0eXBlb2YoKmNiKSwgd29yayk7Cj4gKwo+ICsJ aTkxNV9zd19mZW5jZV9jb21wbGV0ZShjYi0+ZmVuY2UpOwo+ICsJa21lbV9jYWNoZV9mcmVlKGds b2JhbC5zbGFiX2V4ZWN1dGVfY2JzLCBjYik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIF9fbm90 aWZ5X2V4ZWN1dGVfY2Ioc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gK3sKPiArCXN0cnVjdCBl eGVjdXRlX2NiICpjYjsKPiArCj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZycS0+bG9jayk7Cj4g Kwo+ICsJaWYgKGxpc3RfZW1wdHkoJnJxLT5leGVjdXRlX2NiKSkKPiArCQlyZXR1cm47Cj4gKwo+ ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShjYiwgJnJxLT5leGVjdXRlX2NiLCBsaW5rKQo+ICsJCWly cV93b3JrX3F1ZXVlKCZjYi0+d29yayk7Cj4gKwo+ICsJLyoKPiArCSAqIFhYWCBSb2xsYmFjayBv biBfX2k5MTVfcmVxdWVzdF91bnN1Ym1pdCgpCj4gKwkgKgo+ICsJICogSW4gdGhlIGZ1dHVyZSwg cGVyaGFwcyB3aGVuIHdlIGhhdmUgYW4gYWN0aXZlIHRpbWUtc2xpY2luZyBzY2hlZHVsZXIsCj4g KwkgKiBpdCB3aWxsIGJlIGludGVyZXN0aW5nIHRvIHVuc3VibWl0IHBhcmFsbGVsIGV4ZWN1dGlv biBhbmQgcmVtb3ZlCj4gKwkgKiBidXN5d2FpdHMgZnJvbSB0aGUgR1BVIHVudGlsIHRoZWlyIG1h c3RlciBpcyByZXN0YXJ0ZWQuIFRoaXMgaXMKPiArCSAqIHF1aXRlIGhhaXJ5LCB3ZSBoYXZlIHRv IGNhcmVmdWxseSByb2xsYmFjayB0aGUgZmVuY2UgYW5kIGRvIGEKPiArCSAqIHByZWVtcHQtdG8t aWRsZSBjeWNsZSBvbiB0aGUgdGFyZ2V0IGVuZ2luZSwgYWxsIHRoZSB3aGlsZSB0aGUKPiArCSAq IG1hc3RlciBleGVjdXRlX2NiIG1heSByZWZpcmUuCj4gKwkgKi8KPiArCUlOSVRfTElTVF9IRUFE KCZycS0+ZXhlY3V0ZV9jYik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQKPiAraTkxNV9yZXF1ZXN0 X2F3YWl0X2V4ZWN1dGlvbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKPiArCQkJICAgICBzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpzaWduYWwsCj4gKwkJCSAgICAgZ2ZwX3QgZ2ZwKQo+ICt7Cj4gKwlz dHJ1Y3QgZXhlY3V0ZV9jYiAqY2I7Cj4gKwo+ICsJaWYgKGk5MTVfcmVxdWVzdF9pc19hY3RpdmUo c2lnbmFsKSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwljYiA9IGttZW1fY2FjaGVfYWxsb2MoZ2xv YmFsLnNsYWJfZXhlY3V0ZV9jYnMsIGdmcCk7Cj4gKwlpZiAoIWNiKQo+ICsJCXJldHVybiAtRU5P TUVNOwo+ICsKPiArCWNiLT5mZW5jZSA9ICZycS0+c3VibWl0Owo+ICsJaTkxNV9zd19mZW5jZV9h d2FpdChjYi0+ZmVuY2UpOwo+ICsJaW5pdF9pcnFfd29yaygmY2ItPndvcmssIGlycV9leGVjdXRl X2NiKTsKPiArCj4gKwlzcGluX2xvY2tfaXJxKCZzaWduYWwtPmxvY2spOwo+ICsJaWYgKGk5MTVf cmVxdWVzdF9pc19hY3RpdmUoc2lnbmFsKSkgewo+ICsJCWk5MTVfc3dfZmVuY2VfY29tcGxldGUo Y2ItPmZlbmNlKTsKPiArCQlrbWVtX2NhY2hlX2ZyZWUoZ2xvYmFsLnNsYWJfZXhlY3V0ZV9jYnMs IGNiKTsKPiArCX0gZWxzZSB7Cj4gKwkJbGlzdF9hZGRfdGFpbCgmY2ItPmxpbmssICZzaWduYWwt PmV4ZWN1dGVfY2IpOwo+ICsJfQo+ICsJc3Bpbl91bmxvY2tfaXJxKCZzaWduYWwtPmxvY2spOwo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHZvaWQgbW92ZV90b190aW1lbGlu ZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAgCQkJICAgICBzdHJ1Y3QgaTkxNV90 aW1lbGluZSAqdGltZWxpbmUpCj4gICB7Cj4gQEAgLTM4OSw2ICs0NjAsNyBAQCB2b2lkIF9faTkx NV9yZXF1ZXN0X3N1Ym1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCSAqLwo+ ICAgCUJVSUxEX0JVR19PTihfX05PX1BSRUVNUFRJT04gJiB+STkxNV9QUklPUklUWV9NQVNLKTsg Lyogb25seSBpbnRlcm5hbCAqLwo+ICAgCXJlcXVlc3QtPnNjaGVkLmF0dHIucHJpb3JpdHkgfD0g X19OT19QUkVFTVBUSU9OOwo+ICsJX19ub3RpZnlfZXhlY3V0ZV9jYihyZXF1ZXN0KTsKPiAgIAo+ ICAgCXNwaW5fdW5sb2NrKCZyZXF1ZXN0LT5sb2NrKTsKPiAgIAo+IEBAIC02MzAsNiArNzAyLDcg QEAgaTkxNV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiAgIAl9Cj4gICAKPiAgIAlJTklUX0xJU1RfSEVB RCgmcnEtPmFjdGl2ZV9saXN0KTsKPiArCUlOSVRfTElTVF9IRUFEKCZycS0+ZXhlY3V0ZV9jYik7 Cj4gICAKPiAgIAl0bCA9IGNlLT5yaW5nLT50aW1lbGluZTsKPiAgIAlyZXQgPSBpOTE1X3RpbWVs aW5lX2dldF9zZXFubyh0bCwgcnEsICZzZXFubyk7Cj4gQEAgLTcxNyw2ICs3OTAsNTEgQEAgaTkx NV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiAgIAlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAgfQo+ICAg Cj4gK3N0YXRpYyBpbnQKPiArZW1pdF9zZW1hcGhvcmVfd2FpdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICp0bywKPiArCQkgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqZnJvbSwKPiArCQkgICAgZ2ZwX3Qg Z2ZwKQo+ICt7Cj4gKwl1MzIgKmNzOwo+ICsJaW50IGVycjsKPiArCj4gKwlHRU1fQlVHX09OKCFm cm9tLT50aW1lbGluZS0+aGFzX2luaXRpYWxfYnJlYWRjcnVtYik7Cj4gKwlHRU1fQlVHX09OKElO VEVMX0dFTih0by0+aTkxNSkgPCA4KTsKPiArCj4gKwkvKiBXZSBuZWVkIHRvIHBpbiB0aGUgc2ln bmFsZXIncyBIV1NQIHVudGlsIHdlIGFyZSBmaW5pc2hlZCByZWFkaW5nLiAqLwo+ICsJZXJyID0g aTkxNV90aW1lbGluZV9yZWFkX2xvY2soZnJvbS0+dGltZWxpbmUsIHRvKTsKPiArCWlmIChlcnIp Cj4gKwkJcmV0dXJuIGVycjsKPiArCj4gKwkvKiBPbmx5IHN1Ym1pdCBvdXIgc3Bpbm5lciBhZnRl ciB0aGUgc2lnbmFsZXIgaXMgcnVubmluZyEgKi8KPiArCWVyciA9IGk5MTVfcmVxdWVzdF9hd2Fp dF9leGVjdXRpb24odG8sIGZyb20sIGdmcCk7Cj4gKwlpZiAoZXJyKQo+ICsJCXJldHVybiBlcnI7 Cj4gKwo+ICsJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHRvLCA0KTsKPiArCWlmIChJU19FUlIoY3Mp KQo+ICsJCXJldHVybiBQVFJfRVJSKGNzKTsKPiArCj4gKwkvKgo+ICsJICogVXNpbmcgZ3JlYXRl ci10aGFuLW9yLWVxdWFsIGhlcmUgbWVhbnMgd2UgaGF2ZSB0byB3b3JyeQo+ICsJICogYWJvdXQg c2Vxbm8gd3JhcGFyb3VuZC4gVG8gc2lkZSBzdGVwIHRoYXQgaXNzdWUsIHdlIHN3YXAKPiArCSAq IHRoZSB0aW1lbGluZSBIV1NQIHVwb24gd3JhcHBpbmcsIHNvIHRoYXQgZXZlcnlvbmUgbGlzdGVu aW5nCj4gKwkgKiBmb3IgdGhlIG9sZCAocHJlLXdyYXApIHZhbHVlcyBkbyBub3Qgc2VlIHRoZSBt dWNoIHNtYWxsZXIKPiArCSAqIChwb3N0LXdyYXApIHZhbHVlcyB0aGFuIHRoZXkgd2VyZSBleHBl Y3RpbmcgKGFuZCBzbyB3YWl0Cj4gKwkgKiBmb3JldmVyKS4KPiArCSAqLwo+ICsJKmNzKysgPSBN SV9TRU1BUEhPUkVfV0FJVCB8Cj4gKwkJTUlfU0VNQVBIT1JFX0dMT0JBTF9HVFQgfAo+ICsJCU1J X1NFTUFQSE9SRV9QT0xMIHwKPiArCQlNSV9TRU1BUEhPUkVfU0FEX0dURV9TREQ7Cj4gKwkqY3Mr KyA9IGZyb20tPmZlbmNlLnNlcW5vOwo+ICsJKmNzKysgPSBmcm9tLT50aW1lbGluZS0+aHdzcF9v ZmZzZXQ7Cj4gKwkqY3MrKyA9IDA7Cj4gKwo+ICsJaW50ZWxfcmluZ19hZHZhbmNlKHRvLCBjcyk7 Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgIHN0YXRpYyBpbnQKPiAgIGk5MTVfcmVxdWVzdF9h d2FpdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnRvLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpmcm9tKQo+ICAgewo+IEBAIC03MzgsNiArODU2LDkgQEAgaTkxNV9yZXF1ZXN0X2F3YWl0X3Jl cXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqdG8sIHN0cnVjdCBpOTE1X3JlcXVlc3QgKmZyb20p Cj4gICAJCXJldCA9IGk5MTVfc3dfZmVuY2VfYXdhaXRfc3dfZmVuY2VfZ2ZwKCZ0by0+c3VibWl0 LAo+ICAgCQkJCQkJICAgICAgICZmcm9tLT5zdWJtaXQsCj4gICAJCQkJCQkgICAgICAgSTkxNV9G RU5DRV9HRlApOwo+ICsJfSBlbHNlIGlmIChpbnRlbF9lbmdpbmVfaGFzX3NlbWFwaG9yZXModG8t PmVuZ2luZSkgJiYKPiArCQkgICB0by0+Z2VtX2NvbnRleHQtPnNjaGVkLnByaW9yaXR5ID49IEk5 MTVfUFJJT1JJVFlfTk9STUFMKSB7Cj4gKwkJcmV0ID0gZW1pdF9zZW1hcGhvcmVfd2FpdCh0bywg ZnJvbSwgSTkxNV9GRU5DRV9HRlApOwo+ICAgCX0gZWxzZSB7Cj4gICAJCXJldCA9IGk5MTVfc3df ZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKCZ0by0+c3VibWl0LAo+ICAgCQkJCQkJICAgICZmcm9tLT5m ZW5jZSwgMCwKPiBAQCAtMTIxMiwxNCArMTMzMywyMyBAQCBpbnQgaTkxNV9nbG9iYWxfcmVxdWVz dF9pbml0KHZvaWQpCj4gICAJaWYgKCFnbG9iYWwuc2xhYl9yZXF1ZXN0cykKPiAgIAkJcmV0dXJu IC1FTk9NRU07Cj4gICAKPiArCWdsb2JhbC5zbGFiX2V4ZWN1dGVfY2JzID0gS01FTV9DQUNIRShl eGVjdXRlX2NiLAo+ICsJCQkJCSAgICAgU0xBQl9IV0NBQ0hFX0FMSUdOIHwKPiArCQkJCQkgICAg IFNMQUJfUkVDTEFJTV9BQ0NPVU5UIHwKPiArCQkJCQkgICAgIFNMQUJfVFlQRVNBRkVfQllfUkNV KTsKPiArCWlmICghZ2xvYmFsLnNsYWJfZXhlY3V0ZV9jYnMpCj4gKwkJZ290byBlcnJfcmVxdWVz dHM7Cj4gKwo+ICAgCWdsb2JhbC5zbGFiX2RlcGVuZGVuY2llcyA9IEtNRU1fQ0FDSEUoaTkxNV9k ZXBlbmRlbmN5LAo+ICAgCQkJCQkgICAgICBTTEFCX0hXQ0FDSEVfQUxJR04gfAo+ICAgCQkJCQkg ICAgICBTTEFCX1JFQ0xBSU1fQUNDT1VOVCk7Cj4gICAJaWYgKCFnbG9iYWwuc2xhYl9kZXBlbmRl bmNpZXMpCj4gLQkJZ290byBlcnJfcmVxdWVzdHM7Cj4gKwkJZ290byBlcnJfZXhlY3V0ZV9jYnM7 Cj4gICAKPiAgIAlyZXR1cm4gMDsKPiAgIAo+ICtlcnJfZXhlY3V0ZV9jYnM6Cj4gKwlrbWVtX2Nh Y2hlX2Rlc3Ryb3koZ2xvYmFsLnNsYWJfZXhlY3V0ZV9jYnMpOwo+ICAgZXJyX3JlcXVlc3RzOgo+ ICAgCWttZW1fY2FjaGVfZGVzdHJveShnbG9iYWwuc2xhYl9yZXF1ZXN0cyk7Cj4gICAJcmV0dXJu IC1FTk9NRU07Cj4gQEAgLTEyMjgsMTEgKzEzNTgsMTMgQEAgaW50IGk5MTVfZ2xvYmFsX3JlcXVl c3RfaW5pdCh2b2lkKQo+ICAgdm9pZCBpOTE1X2dsb2JhbF9yZXF1ZXN0X3Nocmluayh2b2lkKQo+ ICAgewo+ICAgCWttZW1fY2FjaGVfc2hyaW5rKGdsb2JhbC5zbGFiX2RlcGVuZGVuY2llcyk7Cj4g KwlrbWVtX2NhY2hlX3NocmluayhnbG9iYWwuc2xhYl9leGVjdXRlX2Nicyk7Cj4gICAJa21lbV9j YWNoZV9zaHJpbmsoZ2xvYmFsLnNsYWJfcmVxdWVzdHMpOwo+ICAgfQo+ICAgCj4gICB2b2lkIGk5 MTVfZ2xvYmFsX3JlcXVlc3RfZXhpdCh2b2lkKQo+ICAgewo+ICAgCWttZW1fY2FjaGVfZGVzdHJv eShnbG9iYWwuc2xhYl9kZXBlbmRlbmNpZXMpOwo+ICsJa21lbV9jYWNoZV9kZXN0cm95KGdsb2Jh bC5zbGFiX2V4ZWN1dGVfY2JzKTsKPiAgIAlrbWVtX2NhY2hlX2Rlc3Ryb3koZ2xvYmFsLnNsYWJf cmVxdWVzdHMpOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlcXVlc3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCj4gaW5kZXgg MDcxZmYxMDY0NTc5Li5kZjUyNzc2YjI2Y2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZXF1ZXN0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl cXVlc3QuaAo+IEBAIC0xMjgsNiArMTI4LDcgQEAgc3RydWN0IGk5MTVfcmVxdWVzdCB7Cj4gICAJ ICovCj4gICAJc3RydWN0IGk5MTVfc3dfZmVuY2Ugc3VibWl0Owo+ICAgCXdhaXRfcXVldWVfZW50 cnlfdCBzdWJtaXRxOwo+ICsJc3RydWN0IGxpc3RfaGVhZCBleGVjdXRlX2NiOwo+ICAgCj4gICAJ LyoKPiAgIAkgKiBBIGxpc3Qgb2YgZXZlcnlvbmUgd2Ugd2FpdCB1cG9uLCBhbmQgZXZlcnlvbmUg d2hvIHdhaXRzIHVwb24gdXMuCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc3dfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYwo+IGlu ZGV4IDdjNThiMDQ5ZWNiNS4uOGQxNDAwZDM3OGQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc3dfZmVuY2UuYwo+IEBAIC0xOTIsNyArMTkyLDcgQEAgc3RhdGljIHZvaWQgX19pOTE1X3N3 X2ZlbmNlX2NvbXBsZXRlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKPiAgIAlfX2k5MTVf c3dfZmVuY2Vfbm90aWZ5KGZlbmNlLCBGRU5DRV9GUkVFKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMg dm9pZCBpOTE1X3N3X2ZlbmNlX2NvbXBsZXRlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSkK PiArdm9pZCBpOTE1X3N3X2ZlbmNlX2NvbXBsZXRlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5j ZSkKPiAgIHsKPiAgIAlkZWJ1Z19mZW5jZV9hc3NlcnQoZmVuY2UpOwo+ICAgCj4gQEAgLTIwMiw3 ICsyMDIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3N3X2ZlbmNlX2NvbXBsZXRlKHN0cnVjdCBpOTE1 X3N3X2ZlbmNlICpmZW5jZSkKPiAgIAlfX2k5MTVfc3dfZmVuY2VfY29tcGxldGUoZmVuY2UsIE5V TEwpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIGk5MTVfc3dfZmVuY2VfYXdhaXQoc3RydWN0 IGk5MTVfc3dfZmVuY2UgKmZlbmNlKQo+ICt2b2lkIGk5MTVfc3dfZmVuY2VfYXdhaXQoc3RydWN0 IGk5MTVfc3dfZmVuY2UgKmZlbmNlKQo+ICAgewo+ICAgCWRlYnVnX2ZlbmNlX2Fzc2VydChmZW5j ZSk7Cj4gICAJV0FSTl9PTihhdG9taWNfaW5jX3JldHVybigmZmVuY2UtPnBlbmRpbmcpIDw9IDEp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKPiBpbmRleCAwZTA1NWVhMDE3OWYu LjZkZWM5ZTFkMTEwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3 X2ZlbmNlLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKPiBA QCAtNzksNiArNzksOSBAQCBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9yZXNlcnZhdGlvbihzdHJ1 Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCj4gICAJCQkJICAgIHVuc2lnbmVkIGxvbmcgdGltZW91 dCwKPiAgIAkJCQkgICAgZ2ZwX3QgZ2ZwKTsKPiAgIAo+ICt2b2lkIGk5MTVfc3dfZmVuY2VfYXdh aXQoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlKTsKPiArdm9pZCBpOTE1X3N3X2ZlbmNlX2Nv bXBsZXRlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSk7Cj4gKwo+ICAgc3RhdGljIGlubGlu ZSBib29sIGk5MTVfc3dfZmVuY2Vfc2lnbmFsZWQoY29uc3Qgc3RydWN0IGk5MTVfc3dfZmVuY2Ug KmZlbmNlKQo+ICAgewo+ICAgCXJldHVybiBhdG9taWNfcmVhZCgmZmVuY2UtPnBlbmRpbmcpIDw9 IDA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCAwZGJkNmQ3 YzE2OTMuLjMwYTMwOGViYmM4OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9lbmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2lu ZV9jcy5jCj4gQEAgLTYyMSw2ICs2MjEsNyBAQCB2b2lkIGludGVsX2VuZ2luZXNfc2V0X3NjaGVk dWxlcl9jYXBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgCQl1MzIgc2NoZWRf Y2FwOwo+ICAgCX0gbWFwW10gPSB7Cj4gICAJCXsgSTkxNV9FTkdJTkVfSEFTX1BSRUVNUFRJT04s IEk5MTVfU0NIRURVTEVSX0NBUF9QUkVFTVBUSU9OIH0sCj4gKwkJeyBJOTE1X0VOR0lORV9IQVNf U0VNQVBIT1JFUywgSTkxNV9TQ0hFRFVMRVJfQ0FQX1NFTUFQSE9SRVMgfSwKPiAgIAkJeyBJOTE1 X0VOR0lORV9TVVBQT1JUU19TVEFUUywgSTkxNV9TQ0hFRFVMRVJfQ0FQX1BNVSB9LAo+ICAgCX07 Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ncHVfY29tbWFuZHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2dwdV9jb21tYW5kcy5oCj4gaW5kZXggYjk2YTMxYmMxMDgwLi4wZWZhYWRkM2Jj MzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3B1X2NvbW1hbmRz LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ncHVfY29tbWFuZHMuaAo+IEBA IC0xMDYsNyArMTA2LDEyIEBACj4gICAjZGVmaW5lICAgTUlfU0VNQVBIT1JFX1RBUkdFVChlbmdp bmUpCSgoZW5naW5lKTw8MTUpCj4gICAjZGVmaW5lIE1JX1NFTUFQSE9SRV9XQUlUCU1JX0lOU1RS KDB4MWMsIDIpIC8qIEdFTjgrICovCj4gICAjZGVmaW5lICAgTUlfU0VNQVBIT1JFX1BPTEwJCSgx PDwxNSkKPiArI2RlZmluZSAgIE1JX1NFTUFQSE9SRV9TQURfR1RfU0RECSgwPDwxMikKPiAgICNk ZWZpbmUgICBNSV9TRU1BUEhPUkVfU0FEX0dURV9TREQJKDE8PDEyKQo+ICsjZGVmaW5lICAgTUlf U0VNQVBIT1JFX1NBRF9MVF9TREQJKDI8PDEyKQo+ICsjZGVmaW5lICAgTUlfU0VNQVBIT1JFX1NB RF9MVEVfU0RECSgzPDwxMikKPiArI2RlZmluZSAgIE1JX1NFTUFQSE9SRV9TQURfRVFfU0RECSg0 PDwxMikKPiArI2RlZmluZSAgIE1JX1NFTUFQSE9SRV9TQURfTkVRX1NERAkoNTw8MTIpCj4gICAj ZGVmaW5lIE1JX1NUT1JFX0RXT1JEX0lNTQlNSV9JTlNUUigweDIwLCAxKQo+ICAgI2RlZmluZSBN SV9TVE9SRV9EV09SRF9JTU1fR0VONAlNSV9JTlNUUigweDIwLCAyKQo+ICAgI2RlZmluZSAgIE1J X01FTV9WSVJUVUFMCSgxIDw8IDIyKSAvKiA5NDUsZzMzLDk2NSAqLwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4gaW5kZXggNjZkNDY1NzA4YmM2Li5lYTgxM2Y4OGZiYjMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0yMzA3LDYgKzIzMDcsNyBAQCB2b2lkIGludGVsX2V4 ZWNsaXN0c19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPiAgIAllbmdpbmUtPnBhcmsgPSBOVUxMOwo+ICAgCWVuZ2luZS0+dW5wYXJrID0gTlVM TDsKPiAgIAo+ICsJZW5naW5lLT5mbGFncyB8PSBJOTE1X0VOR0lORV9IQVNfU0VNQVBIT1JFUzsK PiAgIAllbmdpbmUtPmZsYWdzIHw9IEk5MTVfRU5HSU5FX1NVUFBPUlRTX1NUQVRTOwo+ICAgCWlm IChlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCkKPiAgIAkJZW5naW5lLT5mbGFncyB8PSBJ OTE1X0VOR0lORV9IQVNfUFJFRU1QVElPTjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCj4gaW5kZXggNWRmZmNjYjY3NDBlLi5jOWNkNjA0NDQ5ODcgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTQ5Niw2ICs0OTYsNyBAQCBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKPiAgICNkZWZpbmUgSTkxNV9FTkdJTkVfTkVFRFNfQ01E X1BBUlNFUiBCSVQoMCkKPiAgICNkZWZpbmUgSTkxNV9FTkdJTkVfU1VQUE9SVFNfU1RBVFMgICBC SVQoMSkKPiAgICNkZWZpbmUgSTkxNV9FTkdJTkVfSEFTX1BSRUVNUFRJT04gICBCSVQoMikKPiAr I2RlZmluZSBJOTE1X0VOR0lORV9IQVNfU0VNQVBIT1JFUyAgIEJJVCgzKQo+ICAgCXVuc2lnbmVk IGludCBmbGFnczsKPiAgIAo+ICAgCS8qCj4gQEAgLTU3Myw2ICs1NzQsMTIgQEAgaW50ZWxfZW5n aW5lX2hhc19wcmVlbXB0aW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiAgIAlyZXR1cm4gZW5naW5lLT5mbGFncyAmIEk5MTVfRU5HSU5FX0hBU19QUkVFTVBUSU9OOwo+ ICAgfQo+ICAgCj4gK3N0YXRpYyBpbmxpbmUgYm9vbAo+ICtpbnRlbF9lbmdpbmVfaGFzX3NlbWFw aG9yZXMoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7Cj4gKwlyZXR1 cm4gZW5naW5lLT5mbGFncyAmIEk5MTVfRU5HSU5FX0hBU19TRU1BUEhPUkVTOwo+ICt9Cj4gKwo+ ICAgdm9pZCBpbnRlbF9lbmdpbmVzX3NldF9zY2hlZHVsZXJfY2FwcyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSk7Cj4gICAKPiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBfX2V4ZWNsaXN0c19u ZWVkX3ByZWVtcHQoaW50IHByaW8sIGludCBsYXN0KQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiBpbmRleCBk OGFjN2YxMDU3MzQuLjRiOGEwN2Q3NzRiNCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmgKPiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiBAQCAtNDc3 LDYgKzQ3Nyw3IEBAIHR5cGVkZWYgc3RydWN0IGRybV9pOTE1X2lycV93YWl0IHsKPiAgICNkZWZp bmUgICBJOTE1X1NDSEVEVUxFUl9DQVBfUFJJT1JJVFkJKDF1bCA8PCAxKQo+ICAgI2RlZmluZSAg IEk5MTVfU0NIRURVTEVSX0NBUF9QUkVFTVBUSU9OCSgxdWwgPDwgMikKPiAgICNkZWZpbmUgICBJ OTE1X1NDSEVEVUxFUl9DQVBfUE1VCSgxdWwgPDwgMykKPiArI2RlZmluZSAgIEk5MTVfU0NIRURV TEVSX0NBUF9TRU1BUEhPUkVTCSgxdWwgPDwgNCkKPiAgIAo+ICAgI2RlZmluZSBJOTE1X1BBUkFN X0hVQ19TVEFUVVMJCSA0Mgo+ICAgCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=