From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/2] drm/i915: Push the wakeref->count deferral to the backend Date: Tue, 13 Aug 2019 17:47:41 +0300 Message-ID: <87d0h96s1e.fsf@gaia.fi.intel.com> References: <20190813132916.20382-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 18B226E15C for ; Tue, 13 Aug 2019 14:48:24 +0000 (UTC) In-Reply-To: <20190813132916.20382-1-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 Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gSWYgdGhl IGJhY2tlbmQgd2lzaGVzIHRvIGRlZmVyIHRoZSB3YWtlcmVmIHBhcmtpbmcsIG1ha2UgaXQgcmVz cG9uc2libGUKPiBmb3IgdW5sb2NraW5nIHRoZSB3YWtlcmVmIChpLmUuIGJ1bXBpbmcgdGhlIGNv dW50ZXIpLiBUaGlzIGFsbG93cyBpdCB0bwo+IHRpbWUgdGhlIHVubG9jayBtdWNoIG1vcmUgY2Fy ZWZ1bGx5IGluIGNhc2UgaXQgaGFwcGVucyB0byBuZWVkcyB0aGUKPiB3YWtlcmVmIHRvIGJlIGFj dGl2ZSBkdXJpbmcgaXRzIGRlZmVycmFsLgo+Cj4gRm9yIGluc3RhbmNlLCBkdXJpbmcgZW5naW5l IHBhcmtpbmcgd2UgbWF5IGNob29zZSB0byBlbWl0IGFuIGlkbGUKPiBiYXJyaWVyIChhIHJlcXVl c3QpLiBUbyBkbyBzbywgd2UgYm9ycm93IHRoZSBlbmdpbmUtPmtlcm5lbF9jb250ZXh0Cj4gdGlt ZWxpbmUgYW5kIHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNzIHdlIGtlZXAgdGhlCj4gZW5naW5l LT53YWtlcmVmLmNvdW50IGFzIDAuIEhvd2V2ZXIsIHRvIHN1Ym1pdCB0aGF0IHJlcXVlc3QgdG8g SFcgbWF5Cj4gcmVxdWlyZSBhIGludGVsX2VuZ2luZV9wbV9nZXQoKSAoZS5nLiB0byBrZWVwIHRo ZSBzdWJtaXNzaW9uIHRhc2tsZXQKPiBhbGl2ZSkgYW5kIGJlZm9yZSB3ZSBhbGxvdyB0aGF0IHdl IGhhdmUgdG8gcmV3YWtlIG91ciB3YWtlcmVmIHRvIGF2b2lkIGEKPiByZWN1cnNpdmUgZGVhZGxv Y2suCj4KPiA8ND4gWzI1Ny43NDI5MTZdIElSUXMgbm90IGVuYWJsZWQgYXMgZXhwZWN0ZWQKPiA8 ND4gWzI1Ny43NDI5MzBdIFdBUk5JTkc6IENQVTogMCBQSUQ6IDAgYXQga2VybmVsL3NvZnRpcnEu YzoxNjkgX19sb2NhbF9iaF9lbmFibGVfaXArMHhhOS8weDEwMAo+IDw0PiBbMjU3Ljc0MjkzNl0g TW9kdWxlcyBsaW5rZWQgaW46IHZnZW0gc25kX2hkYV9jb2RlY19oZG1pIHNuZF9oZGFfY29kZWNf cmVhbHRlayBzbmRfaGRhX2NvZGVjX2dlbmVyaWMgaTkxNSBidHVzYiBidHJ0bCBidGJjbSBidGlu dGVsIHNuZF9oZGFfaW50ZWwgc25kX2ludGVsX25obHQgYmx1ZXRvb3RoIHNuZF9oZGFfY29kZWMg Y29yZXRlbXAgc25kX2h3ZGVwIGNyY3QxMGRpZl9wY2xtdWwgc25kX2hkYV9jb3JlIGNyYzMyX3Bj bG11bCBlY2RoX2dlbmVyaWMgZWNjIGdoYXNoX2NsbXVsbmlfaW50ZWwgc25kX3BjbSByODE2OSBy ZWFsdGVrIGxwY19pY2ggcHJpbWVfbnVtYmVycyBpMmNfaGlkCj4gPDQ+IFsyNTcuNzQyOTkxXSBD UFU6IDAgUElEOiAwIENvbW06IHN3YXBwZXIvMCBUYWludGVkOiBHICAgICBVICBXICAgICAgICAg NS4zLjAtcmMzLWc1ZDBhMDZjZDUzMmMtZHJtdGlwXzM0MCsgIzEKPiA8ND4gWzI1Ny43NDI5OThd IEhhcmR3YXJlIG5hbWU6IEdJR0FCWVRFIEdCLUJYQlQtMTkwMC9NWkJBWUFCLTAwLCBCSU9TIEY2 IDAyLzE3LzIwMTUKPiA8ND4gWzI1Ny43NDMwMDhdIFJJUDogMDAxMDpfX2xvY2FsX2JoX2VuYWJs ZV9pcCsweGE5LzB4MTAwCj4gPDQ+IFsyNTcuNzQzMDE3XSBDb2RlOiAzNyA1YiA1ZCBjMyA4YiA4 MCA1MCAwOCAwMCAwMCA4NSBjMCA3NSBhOSA4MCAzZCAwYiBiZSAyNSAwMSAwMCA3NSBhMCA0OCBj NyBjNyBmMyAwYyAwNiBhYyBjNiAwNSBmYiBiZCAyNSAwMSAwMSBlOCA3NyA4NCBmZiBmZiA8MGY+ IDBiIGViIDg5IDQ4IDg5IGVmIGU4IDNiIDQxIDA2IDAwIGViIDk4IGU4IGU0IDVjIGY0IGZmIDVi IDVkIGMzCj4gPDQ+IFsyNTcuNzQzMDI1XSBSU1A6IDAwMTg6ZmZmZmE3ODYwMDAwM2NiOCBFRkxB R1M6IDAwMDEwMDg2Cj4gPDQ+IFsyNTcuNzQzMDM1XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJY OiAwMDAwMDAwMDAwMDAwMjAwIFJDWDogMDAwMDAwMDAwMDAxMDMwMgo+IDw0PiBbMjU3Ljc0MzA0 Ml0gUkRYOiAwMDAwMDAwMDgwMDEwMzAyIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBSREk6IDAwMDAw MDAwZmZmZmZmZmYKPiA8ND4gWzI1Ny43NDMwNTBdIFJCUDogZmZmZmZmZmZjMDQ5NGJiMyBSMDg6 IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAxCj4gPDQ+IFsyNTcuNzQzMDU4 XSBSMTA6IDAwMDAwMDAwMTRjOGYwZTkgUjExOiAwMDAwMDAwMGZlZTJmZjhlIFIxMjogZmZmZmEy M2JhOGMzODAwOAo+IDw0PiBbMjU3Ljc0MzA2NV0gUjEzOiBmZmZmYTIzYmFjYzU3OWMwIFIxNDog ZmZmZmEyM2JiN2RiMGY2MCBSMTU6IGZmZmZhMjNiOWNjOGM0MzAKPiA8ND4gWzI1Ny43NDMwNzRd IEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmYTIzYmJiYTAwMDAwKDAwMDApIGtu bEdTOjAwMDAwMDAwMDAwMDAwMDAKPiA8ND4gWzI1Ny43NDMwODJdIENTOiAgMDAxMCBEUzogMDAw MCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKPiA8ND4gWzI1Ny43NDMwODldIENSMjog MDAwMDdmZTQ3N2IyMDc3OCBDUjM6IDAwMDAwMDAxMWY3MmEwMDAgQ1I0OiAwMDAwMDAwMDAwMTAw NmYwCj4gPDQ+IFsyNTcuNzQzMDk2XSBDYWxsIFRyYWNlOgo+IDw0PiBbMjU3Ljc0MzEwNF0gIDxJ UlE+Cj4gPDQ+IFsyNTcuNzQzMjY1XSAgX19pOTE1X3JlcXVlc3RfY29tbWl0KzB4MjQwLzB4NWQw IFtpOTE1XQo+IDw0PiBbMjU3Ljc0MzQyN10gID8gX19pOTE1X3JlcXVlc3RfY3JlYXRlKzB4MjI4 LzB4NGMwIFtpOTE1XQo+IDw0PiBbMjU3Ljc0MzU4NF0gIF9fZW5naW5lX3BhcmsrMHg2NC8weDI1 MCBbaTkxNV0KPiA8ND4gWzI1Ny43NDM3MzBdICBfX19faW50ZWxfd2FrZXJlZl9wdXRfbGFzdCsw eDFjLzB4NzAgW2k5MTVdCj4gPDQ+IFsyNTcuNzQzODc4XSAgaTkxNV9zYW1wbGUrMHgyZWUvMHgz MTAgW2k5MTVdCj4gPDQ+IFsyNTcuNzQ0MDMwXSAgPyBpOTE1X3BtdV9jcHVfb2ZmbGluZSsweGIw LzB4YjAgW2k5MTVdCj4gPDQ+IFsyNTcuNzQ0MDQwXSAgX19ocnRpbWVyX3J1bl9xdWV1ZXMrMHgx MWUvMHg0YjAKPiA8ND4gWzI1Ny43NDQwNjhdICBocnRpbWVyX2ludGVycnVwdCsweGVhLzB4MjUw Cj4gPDQ+IFsyNTcuNzQ0MDc5XSAgPyBsb2NrZGVwX2hhcmRpcnFzX29mZisweDc5LzB4ZDAKPiA8 ND4gWzI1Ny43NDQxMDFdICBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQrMHg5Ni8weDI4MAo+IDw0 PiBbMjU3Ljc0NDExNF0gIGFwaWNfdGltZXJfaW50ZXJydXB0KzB4Zi8weDIwCj4gPDQ+IFsyNTcu NzQ0MTI1XSBSSVA6IDAwMTA6X19kb19zb2Z0aXJxKzB4YjMvMHg0YWUKPgo+IEJ1Z3ppbGxhOiBo dHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEzNzgKPiBTaWdu ZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzog RGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4K PiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jIHwgIDggKystCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jICAgICAgIHwgNjYgKysrKysrKysr KysrLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggICAg ICAgfCAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgICAgIHwg IDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5jICAgICAgfCAgNCAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93YWtlcmVmLmggICAgICB8IDExICsrKysK PiAgNiBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jCj4gaW5kZXggNmIxNWUz MzM1ZGQ2Li5hZDM3Yzk4MDhjMWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZW5naW5lX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9lbmdpbmVfcG0uYwo+IEBAIC02OCw5ICs2OCwxMyBAQCBzdGF0aWMgYm9vbCBzd2l0Y2hfdG9f a2VybmVsX2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAKPiAgCS8q IENoZWNrIGFnYWluIG9uIHRoZSBuZXh0IHJldGlyZW1lbnQuICovCj4gIAllbmdpbmUtPndha2Vy ZWZfc2VyaWFsID0gZW5naW5lLT5zZXJpYWwgKyAxOwo+IC0KPiAgCWk5MTVfcmVxdWVzdF9hZGRf YWN0aXZlX2JhcnJpZXJzKHJxKTsKPiArCj4gKwlycS0+c2NoZWQuYXR0ci5wcmlvcml0eSA9IElO VF9NQVg7IC8qIFByZWVtcHRpb24gYmFycmllciAqLwo+ICsKPiAgCV9faTkxNV9yZXF1ZXN0X2Nv bW1pdChycSk7Cj4gKwlfX2ludGVsX3dha2VyZWZfZGVmZXJfcGFyaygmZW5naW5lLT53YWtlcmVm KTsKPiArCV9faTkxNV9yZXF1ZXN0X3F1ZXVlKHJxLCBOVUxMKTsKPiAgCj4gIAlyZXR1cm4gZmFs c2U7Cj4gIH0KPiBAQCAtOTgsNyArMTAyLDcgQEAgc3RhdGljIGludCBfX2VuZ2luZV9wYXJrKHN0 cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKPiAgCWludGVsX2VuZ2luZV9wb29sX3BhcmsoJmVuZ2lu ZS0+cG9vbCk7Cj4gIAo+ICAJLyogTXVzdCBiZSByZXNldCB1cG9uIGlkbGluZywgb3Igd2UgbWF5 IG1pc3MgdGhlIGJ1c3kgd2FrZXVwLiAqLwo+IC0JR0VNX0JVR19PTihlbmdpbmUtPmV4ZWNsaXN0 cy5xdWV1ZV9wcmlvcml0eV9oaW50ICE9IElOVF9NSU4pOwo+ICsJZW5naW5lLT5leGVjbGlzdHMu cXVldWVfcHJpb3JpdHlfaGludCA9IElOVF9NSU47CgpUbyBzcGVlZCB1cCB0aGUgdHVybmFyb3Vu ZCwgd2Ugd2VudCB0aHJvdWdoIHRoaXMgb24gaXJjIGFuZCB0aGlzCndhcyB0aGUgb25seSB0aGlu ZyB0aGF0IHdhcyBub3QgYWdyZWVkIHVwb24gc28gd2l0aCBpdCByZW1vdmVkLAoKUmV2aWV3ZWQt Ynk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgoKPiAgCj4g IAlpZiAoZW5naW5lLT5wYXJrKQo+ICAJCWVuZ2luZS0+cGFyayhlbmdpbmUpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gaW5kZXggMGVhMTEzNmQ0NTNlLi40MDIxMzM0ZGQyYzUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IEBAIC0xMTg2LDYgKzExODYs MTIgQEAgc3RydWN0IGk5MTVfcmVxdWVzdCAqX19pOTE1X3JlcXVlc3RfY29tbWl0KHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxKQo+ICAJCWxpc3RfYWRkKCZyaW5nLT5hY3RpdmVfbGluaywgJnJxLT5p OTE1LT5ndC5hY3RpdmVfcmluZ3MpOwo+ICAJcnEtPmVtaXR0ZWRfamlmZmllcyA9IGppZmZpZXM7 Cj4gIAo+ICsJcmV0dXJuIHByZXY7Cj4gK30KPiArCj4gK3ZvaWQgX19pOTE1X3JlcXVlc3RfcXVl dWUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4gKwkJCSAgY29uc3Qgc3RydWN0IGk5MTVfc2No ZWRfYXR0ciAqYXR0cikKPiArewo+ICAJLyoKPiAgCSAqIExldCB0aGUgYmFja2VuZCBrbm93IGEg bmV3IHJlcXVlc3QgaGFzIGFycml2ZWQgdGhhdCBtYXkgbmVlZAo+ICAJICogdG8gYWRqdXN0IHRo ZSBleGlzdGluZyBleGVjdXRpb24gc2NoZWR1bGUgZHVlIHRvIGEgaGlnaCBwcmlvcml0eQo+IEBA IC0xMTk5LDQzICsxMjA1LDE1IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgKl9faTkxNV9yZXF1ZXN0 X2NvbW1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgCSAqLwo+ICAJbG9jYWxfYmhfZGlz YWJsZSgpOwo+ICAJaTkxNV9zd19mZW5jZV9jb21taXQoJnJxLT5zZW1hcGhvcmUpOwo+IC0JaWYg KGVuZ2luZS0+c2NoZWR1bGUpIHsKPiAtCQlzdHJ1Y3QgaTkxNV9zY2hlZF9hdHRyIGF0dHIgPSBy cS0+Z2VtX2NvbnRleHQtPnNjaGVkOwo+IC0KPiAtCQkvKgo+IC0JCSAqIEJvb3N0IGFjdHVhbCB3 b3JrbG9hZHMgcGFzdCBzZW1hcGhvcmVzIQo+IC0JCSAqCj4gLQkJICogV2l0aCBzZW1hcGhvcmVz IHdlIHNwaW4gb24gb25lIGVuZ2luZSB3YWl0aW5nIGZvciBhbm90aGVyLAo+IC0JCSAqIHNpbXBs eSB0byByZWR1Y2UgdGhlIGxhdGVuY3kgb2Ygc3RhcnRpbmcgb3VyIHdvcmsgd2hlbgo+IC0JCSAq IHRoZSBzaWduYWxlciBjb21wbGV0ZXMuIEhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFueSBvdGhlcgo+ IC0JCSAqIHdvcmsgdGhhdCB3ZSBjb3VsZCBiZSBkb2luZyBvbiB0aGlzIGVuZ2luZSBpbnN0ZWFk LCB0aGF0Cj4gLQkJICogaXMgYmV0dGVyIHV0aWxpc2F0aW9uIGFuZCB3aWxsIHJlZHVjZSB0aGUg b3ZlcmFsbCBkdXJhdGlvbgo+IC0JCSAqIG9mIHRoZSBjdXJyZW50IHdvcmsuIFRvIGF2b2lkIFBJ IGJvb3N0aW5nIGEgc2VtYXBob3JlCj4gLQkJICogZmFyIGluIHRoZSBkaXN0YW5jZSBwYXN0IG92 ZXIgdXNlZnVsIHdvcmssIHdlIGtlZXAgYSBoaXN0b3J5Cj4gLQkJICogb2YgYW55IHNlbWFwaG9y ZSB1c2UgYWxvbmcgb3VyIGRlcGVuZGVuY3kgY2hhaW4uCj4gLQkJICovCj4gLQkJaWYgKCEocnEt PnNjaGVkLmZsYWdzICYgSTkxNV9TQ0hFRF9IQVNfU0VNQVBIT1JFX0NIQUlOKSkKPiAtCQkJYXR0 ci5wcmlvcml0eSB8PSBJOTE1X1BSSU9SSVRZX05PU0VNQVBIT1JFOwo+IC0KPiAtCQkvKgo+IC0J CSAqIEJvb3N0IHByaW9yaXRpZXMgdG8gbmV3IGNsaWVudHMgKG5ldyByZXF1ZXN0IGZsb3dzKS4K PiAtCQkgKgo+IC0JCSAqIEFsbG93IGludGVyYWN0aXZlL3N5bmNocm9ub3VzIGNsaWVudHMgdG8g anVtcCBhaGVhZCBvZgo+IC0JCSAqIHRoZSBidWxrIGNsaWVudHMuIChGUV9DT0RFTCkKPiAtCQkg Ki8KPiAtCQlpZiAobGlzdF9lbXB0eSgmcnEtPnNjaGVkLnNpZ25hbGVyc19saXN0KSkKPiAtCQkJ YXR0ci5wcmlvcml0eSB8PSBJOTE1X1BSSU9SSVRZX1dBSVQ7Cj4gLQo+IC0JCWVuZ2luZS0+c2No ZWR1bGUocnEsICZhdHRyKTsKPiAtCX0KPiArCWlmIChhdHRyICYmIHJxLT5lbmdpbmUtPnNjaGVk dWxlKQo+ICsJCXJxLT5lbmdpbmUtPnNjaGVkdWxlKHJxLCBhdHRyKTsKPiAgCWk5MTVfc3dfZmVu Y2VfY29tbWl0KCZycS0+c3VibWl0KTsKPiAgCWxvY2FsX2JoX2VuYWJsZSgpOyAvKiBLaWNrIHRo ZSBleGVjbGlzdHMgdGFza2xldCBpZiBqdXN0IHNjaGVkdWxlZCAqLwo+IC0KPiAtCXJldHVybiBw cmV2Owo+ICB9Cj4gIAo+ICB2b2lkIGk5MTVfcmVxdWVzdF9hZGQoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEpCj4gIHsKPiArCXN0cnVjdCBpOTE1X3NjaGVkX2F0dHIgYXR0ciA9IHJxLT5nZW1fY29u dGV4dC0+c2NoZWQ7Cj4gIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpwcmV2Owo+ICAKPiAgCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJnJxLT50aW1lbGluZS0+bXV0ZXgpOwo+IEBAIC0xMjQ1LDYgKzEyMjMs MzIgQEAgdm9pZCBpOTE1X3JlcXVlc3RfYWRkKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAK PiAgCXByZXYgPSBfX2k5MTVfcmVxdWVzdF9jb21taXQocnEpOwo+ICAKPiArCS8qCj4gKwkgKiBC b29zdCBhY3R1YWwgd29ya2xvYWRzIHBhc3Qgc2VtYXBob3JlcyEKPiArCSAqCj4gKwkgKiBXaXRo IHNlbWFwaG9yZXMgd2Ugc3BpbiBvbiBvbmUgZW5naW5lIHdhaXRpbmcgZm9yIGFub3RoZXIsCj4g KwkgKiBzaW1wbHkgdG8gcmVkdWNlIHRoZSBsYXRlbmN5IG9mIHN0YXJ0aW5nIG91ciB3b3JrIHdo ZW4KPiArCSAqIHRoZSBzaWduYWxlciBjb21wbGV0ZXMuIEhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFu eSBvdGhlcgo+ICsJICogd29yayB0aGF0IHdlIGNvdWxkIGJlIGRvaW5nIG9uIHRoaXMgZW5naW5l IGluc3RlYWQsIHRoYXQKPiArCSAqIGlzIGJldHRlciB1dGlsaXNhdGlvbiBhbmQgd2lsbCByZWR1 Y2UgdGhlIG92ZXJhbGwgZHVyYXRpb24KPiArCSAqIG9mIHRoZSBjdXJyZW50IHdvcmsuIFRvIGF2 b2lkIFBJIGJvb3N0aW5nIGEgc2VtYXBob3JlCj4gKwkgKiBmYXIgaW4gdGhlIGRpc3RhbmNlIHBh c3Qgb3ZlciB1c2VmdWwgd29yaywgd2Uga2VlcCBhIGhpc3RvcnkKPiArCSAqIG9mIGFueSBzZW1h cGhvcmUgdXNlIGFsb25nIG91ciBkZXBlbmRlbmN5IGNoYWluLgo+ICsJICovCj4gKwlpZiAoIShy cS0+c2NoZWQuZmxhZ3MgJiBJOTE1X1NDSEVEX0hBU19TRU1BUEhPUkVfQ0hBSU4pKQo+ICsJCWF0 dHIucHJpb3JpdHkgfD0gSTkxNV9QUklPUklUWV9OT1NFTUFQSE9SRTsKPiArCj4gKwkvKgo+ICsJ ICogQm9vc3QgcHJpb3JpdGllcyB0byBuZXcgY2xpZW50cyAobmV3IHJlcXVlc3QgZmxvd3MpLgo+ ICsJICoKPiArCSAqIEFsbG93IGludGVyYWN0aXZlL3N5bmNocm9ub3VzIGNsaWVudHMgdG8ganVt cCBhaGVhZCBvZgo+ICsJICogdGhlIGJ1bGsgY2xpZW50cy4gKEZRX0NPREVMKQo+ICsJICovCj4g KwlpZiAobGlzdF9lbXB0eSgmcnEtPnNjaGVkLnNpZ25hbGVyc19saXN0KSkKPiArCQlhdHRyLnBy aW9yaXR5IHw9IEk5MTVfUFJJT1JJVFlfV0FJVDsKPiArCj4gKwlfX2k5MTVfcmVxdWVzdF9xdWV1 ZShycSwgJmF0dHIpOwo+ICsKPiAgCS8qCj4gIAkgKiBJbiB0eXBpY2FsIHNjZW5hcmlvcywgd2Ug ZG8gbm90IGV4cGVjdCB0aGUgcHJldmlvdXMgcmVxdWVzdCBvbgo+ICAJICogdGhlIHRpbWVsaW5l IHRvIGJlIHN0aWxsIHRyYWNrZWQgYnkgdGltZWxpbmUtPmxhc3RfcmVxdWVzdCBpZiBpdAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCj4gaW5kZXggMzEzZGYzYzM3MTU4Li5mZWMxZDVm MTdjOTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+IEBAIC0yNTEsNiAr MjUxLDggQEAgc3RydWN0IGk5MTVfcmVxdWVzdCAqIF9fbXVzdF9jaGVjawo+ICBpOTE1X3JlcXVl c3RfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7Cj4gIAo+ICBzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpfX2k5MTVfcmVxdWVzdF9jb21taXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVz dCk7Cj4gK3ZvaWQgX19pOTE1X3JlcXVlc3RfcXVldWUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs Cj4gKwkJCSAgY29uc3Qgc3RydWN0IGk5MTVfc2NoZWRfYXR0ciAqYXR0cik7Cj4gIAo+ICB2b2lk IGk5MTVfcmVxdWVzdF9yZXRpcmVfdXB0byhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSk7Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwo+IGluZGV4IDBiZDQ1MmU4NTFkOC4u N2I4NGViY2EyOTAxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2No ZWR1bGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCj4g QEAgLTM0OSw4ICszNDksNyBAQCB2b2lkIGk5MTVfc2NoZWR1bGVfYnVtcF9wcmlvcml0eShzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdW5zaWduZWQgaW50IGJ1bXApCj4gIAl1bnNpZ25lZCBsb25n IGZsYWdzOwo+ICAKPiAgCUdFTV9CVUdfT04oYnVtcCAmIH5JOTE1X1BSSU9SSVRZX01BU0spOwo+ IC0KPiAtCWlmIChSRUFEX09OQ0UocnEtPnNjaGVkLmF0dHIucHJpb3JpdHkpID09IEk5MTVfUFJJ T1JJVFlfSU5WQUxJRCkKPiArCWlmIChSRUFEX09OQ0UocnEtPnNjaGVkLmF0dHIucHJpb3JpdHkp ICYgYnVtcCkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkdWxl X2xvY2ssIGZsYWdzKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf d2FrZXJlZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5jCj4gaW5kZXgg ZDQ0NDNlODFjMWM4Li44NjhjYzc4MDQ4ZDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfd2FrZXJlZi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf d2FrZXJlZi5jCj4gQEAgLTU3LDEyICs1NywxMCBAQCBzdGF0aWMgdm9pZCBfX19faW50ZWxfd2Fr ZXJlZl9wdXRfbGFzdChzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCj4gIAlpZiAoIWF0b21pY19k ZWNfYW5kX3Rlc3QoJndmLT5jb3VudCkpCj4gIAkJZ290byB1bmxvY2s7Cj4gIAo+ICsJLyogb3Bz LT5wdXQoKSBtdXN0IHJlc2NoZWR1bGUgaXRzIG93biByZWxlYXNlIG9uIGVycm9yL2RlZmVycmFs ICovCj4gIAlpZiAobGlrZWx5KCF3Zi0+b3BzLT5wdXQod2YpKSkgewo+ICAJCXJwbV9wdXQod2Yp Owo+ICAJCXdha2VfdXBfdmFyKCZ3Zi0+d2FrZXJlZik7Cj4gLQl9IGVsc2Ugewo+IC0JCS8qIG9w cy0+cHV0KCkgbXVzdCBzY2hlZHVsZSBpdHMgb3duIHJlbGVhc2Ugb24gZGVmZXJyYWwgKi8KPiAt CQlhdG9taWNfc2V0X3JlbGVhc2UoJndmLT5jb3VudCwgMSk7Cj4gIAl9Cj4gIAo+ICB1bmxvY2s6 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dha2VyZWYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dha2VyZWYuaAo+IGluZGV4IDUzNWEzYTEyODY0Yi4u NWYwYzk3MmE4MGZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dh a2VyZWYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dha2VyZWYuaAo+IEBA IC0xNjMsNiArMTYzLDE3IEBAIGludGVsX3dha2VyZWZfaXNfYWN0aXZlKGNvbnN0IHN0cnVjdCBp bnRlbF93YWtlcmVmICp3ZikKPiAgCXJldHVybiBSRUFEX09OQ0Uod2YtPndha2VyZWYpOwo+ICB9 Cj4gIAo+ICsvKioKPiArICogX19pbnRlbF93YWtlcmVmX2RlZmVyX3Bhcms6IERlZmVyIHRoZSBj dXJyZW50IHBhcmsgY2FsbGJhY2sKPiArICogQHdmOiB0aGUgd2FrZXJlZgo+ICsgKi8KPiArc3Rh dGljIGlubGluZSB2b2lkCj4gK19faW50ZWxfd2FrZXJlZl9kZWZlcl9wYXJrKHN0cnVjdCBpbnRl bF93YWtlcmVmICp3ZikKPiArewo+ICsJSU5URUxfV0FLRVJFRl9CVUdfT04oYXRvbWljX3JlYWQo JndmLT5jb3VudCkpOwo+ICsJYXRvbWljX3NldF9yZWxlYXNlKCZ3Zi0+Y291bnQsIDEpOwo+ICt9 Cj4gKwo+ICAvKioKPiAgICogaW50ZWxfd2FrZXJlZl93YWl0X2Zvcl9pZGxlOiBXYWl0IHVudGls IHRoZSB3YWtlcmVmIGlzIGlkbGUKPiAgICogQHdmOiB0aGUgd2FrZXJlZgo+IC0tIAo+IDIuMjMu MC5yYzEKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4