From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 5/6] drm/i915: Do remaps for all contexts Date: Wed, 18 Sep 2013 18:14:42 -0700 Message-ID: <20130919011442.GA8226@bwidawsk.net> References: <1379477575-2164-1-git-send-email-benjamin.widawsky@intel.com> <1379477575-2164-5-git-send-email-benjamin.widawsky@intel.com> <20130918074849.GB4531@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 28EB2E6A5B for ; Wed, 18 Sep 2013 18:14:51 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20130918074849.GB4531@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Intel GFX , Bryan Bell , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMTgsIDIwMTMgYXQgMTA6NDg6NDlBTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgU2VwIDE3LCAyMDEzIGF0IDA5OjEyOjQ2UE0gLTA3MDAsIEJlbiBX aWRhd3NreSB3cm90ZToKPiA+IE9uIGJvdGggSXZ5YnJpZGdlIGFuZCBIYXN3ZWxsLCByb3cgcmVt YXBwaW5nIGluZm9ybWF0aW9uIGlzIHNhdmVkIGFuZAo+ID4gcmVzdG9yZWQgd2l0aCBjb250ZXh0 LiBUaGlzIG1lYW5zLCB3ZSBuZXZlciBhY3R1YWxseSBwcm9wZXJseSBzdXBwb3J0ZWQKPiA+IHRo ZSBsMyByZW1hcHBpbmcgYmVjYXVzZSBvdXIgc3lzZnMgaW50ZXJmYWNlIGlzIGFzeW5jaHJvbm91 cyAoYW5kIG5vdAo+ID4gdGllZCB0byBhbnkgY29udGV4dCksIGFuZCB0aGUga25vd24gZmF1bHR5 IEhXIHdvdWxkIGJlIHJldXNlZCBieSB0aGUKPiA+IG5leHQgY29udGV4dCB0byBydW4uCj4gPiAK PiA+IE5vdCB0aGF0IGR1ZSB0byB0aGUgYXN5bmNocm9ub3VzIG5hdHVyZSBvZiB0aGUgc3lzZnMg ZW50cnksIHRoZXJlIGlzIG5vCj4gPiBwb2ludCBtb2RpZnlpbmcgdGhlIHJlZ2lzdGVycyBmb3Ig dGhlIGV4aXN0aW5nIGNvbnRleHQuIEluc3RlYWQgd2Ugc2V0IGEKPiA+IGZsYWcgZm9yIGFsbCBj b250ZXh0cyB0byBsb2FkIHRoZSBjb3JyZWN0IHJlbWFwcGluZyBpbmZvcm1hdGlvbiBvbiB0aGUK PiA+IG5leHQgcnVuLiBJbnRlcmVzdGVkIGNsaWVudHMgY2FuIHVzZSBkZWJ1Z2ZzIHRvIGRldGVy bWluZSB3aGV0aGVyIG9yIG5vdAo+ID4gdGhlIHJvdyBoYXMgYmVlbiByZW1hcHBlZC4KPiA+IAo+ ID4gT25lIGNvdWxkIHByb3Bvc2UgYXQgdGhpcyBwb2ludCB0aGF0IHdlIGp1c3QgZG8gdGhlIHJl bWFwcGluZyBpbiB0aGUKPiA+IGtlcm5lbC4gSSBndWVzcyBzaW5jZSB3ZSBoYXZlIHRvIG1haW50 YWluIHRoZSBzeXNmcyBpbnRlcmZhY2UgYW55d2F5LAo+ID4gSSdtIG5vdCBzdXJlIGhvdyB1c2Vm dWwgaXQgaXMsIGFuZCBJIGRvIGxpa2Uga2VlcGluZyB0aGUgcG9saWN5IGluCj4gPiB1c2Vyc3Bh Y2U7IChpdCB3YXNuJ3QgbXkgb3JpZ2luYWwgZGVjaXNpb24gdG8gbWFrZSB0aGUKPiA+IGludGVy ZmFjZSB0aGUgd2F5IGl0IGlzLCBzbyBJJ20gbm90IGF0dGFjaGVkKS4KPiA+IAo+ID4gdjI6IEZv cmNlIGEgY29udGV4dCBzd2l0Y2ggd2hlbiB3ZSBoYXZlIGEgcmVtYXAgb24gdGhlIG5leHQgc3dp dGNoLgo+ID4gKFZpbGxlKQo+ID4gRG9uJ3QgbGV0IHVzZXJzcGFjZSB1c2UgdGhlIGludGVyZmFj ZSB3aXRoIGRpc2FibGVkIGNvbnRleHRzLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBCZW4gV2lk YXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyAgICAgfCAgOCArKysrKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDEgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NvbnRleHQuYyB8IDIyICsrKysrKysrKysrKysrKystLS0tCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jICAgICAgIHwgMzcgKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAyNyBk ZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IGlu ZGV4IGFkYTA5NTAuLjgwYmVkNjkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKPiA+IEBAIC0xNDUsNiArMTQ1LDEzIEBAIGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gPiAgCQlzZXFfcHJpbnRm KG0sICIgKCVzKSIsIG9iai0+cmluZy0+bmFtZSk7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyB2 b2lkIGRlc2NyaWJlX2N0eChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBpOTE1X2h3X2NvbnRl eHQgKmN0eCkKPiA+ICt7Cj4gPiArCXNlcV9wdXRjKG0sIGN0eC0+aXNfaW5pdGlhbGl6ZWQgPyAn SScgOiAnaScpOwo+ID4gKwlzZXFfcHV0YyhtLCBjdHgtPnJlbWFwX3NsaWNlID8gJ1InIDogJ3In KTsKPiA+ICsJc2VxX3B1dGMobSwgJyAnKTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIGludCBp OTE1X2dlbV9vYmplY3RfbGlzdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkK PiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1faW5m b19ub2RlICopIG0tPnByaXZhdGU7Cj4gPiBAQCAtMTQ2Myw2ICsxNDcwLDcgQEAgc3RhdGljIGlu dCBpOTE1X2NvbnRleHRfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ ID4gIAo+ID4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0eCwgJmRldl9wcml2LT5jb250ZXh0X2xp c3QsIGxpbmspIHsKPiA+ICAJCXNlcV9wdXRzKG0sICJIVyBjb250ZXh0ICIpOwo+ID4gKwkJZGVz Y3JpYmVfY3R4KG0sIGN0eCk7Cj4gPiAgCQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBp KQo+ID4gIAkJCWlmIChyaW5nLT5kZWZhdWx0X2NvbnRleHQgPT0gY3R4KQo+ID4gIAkJCQlzZXFf cHJpbnRmKG0sICIoZGVmYXVsdCBjb250ZXh0ICVzKSAiLCByaW5nLT5uYW1lKTsKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggMTc5NTkyNy4uMDE1ZGY1MiAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC02MDEsNiArNjAxLDcgQEAgc3RydWN0IGk5MTVf aHdfY29udGV4dCB7Cj4gPiAgCXN0cnVjdCBrcmVmIHJlZjsKPiA+ICAJaW50IGlkOwo+ID4gIAli b29sIGlzX2luaXRpYWxpemVkOwo+ID4gKwl1aW50OF90IHJlbWFwX3NsaWNlOwo+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7Cj4gPiAgCXN0cnVjdCBpbnRlbF9y aW5nX2J1ZmZlciAqcmluZzsKPiA+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiA+IGluZGV4IDJiYmRj ZTguLjdlMTM4Y2MgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYwo+ID4gQEAgLTE0MCw3ICsxNDAsNyBAQCBjcmVhdGVfaHdfY29udGV4dChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICAJc3RydWN0IGk5MTVfaHdfY29udGV4dCAqY3R4 Owo+ID4gLQlpbnQgcmV0Owo+ID4gKwlpbnQgcmV0LCBpOwo+ID4gIAo+ID4gIAljdHggPSBremFs bG9jKHNpemVvZigqY3R4KSwgR0ZQX0tFUk5FTCk7Cj4gPiAgCWlmIChjdHggPT0gTlVMTCkKPiA+ IEBAIC0xODEsNiArMTgxLDggQEAgY3JlYXRlX2h3X2NvbnRleHQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiA+ICAKPiA+ICAJY3R4LT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7Cj4gPiAgCWN0eC0+ aWQgPSByZXQ7Cj4gPiArCWZvciAoaSA9IDA7IGkgPCBOVU1fTDNfU0xJQ0VTKGRldik7IGkrKykK PiA+ICsJCWN0eC0+cmVtYXBfc2xpY2UgfD0gMSA8PCAxOwo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgo+IAo+IFN0aWxsIGJyb2tlbi4KCk9yIG1heWJlIEkgd2Fu dGVkIGl0IHRvIGFsd2F5cyBiZSB0aGUgc2Vjb25kIHNsaWNlIQoKPiAKPiA+ICAKPiA+ICAJcmV0 dXJuIGN0eDsKPiA+ICAKPiA+IEBAIC0zOTYsMTEgKzM5OCwxMSBAQCBzdGF0aWMgaW50IGRvX3N3 aXRjaChzdHJ1Y3QgaTkxNV9od19jb250ZXh0ICp0bykKPiA+ICAJc3RydWN0IGludGVsX3Jpbmdf YnVmZmVyICpyaW5nID0gdG8tPnJpbmc7Cj4gPiAgCXN0cnVjdCBpOTE1X2h3X2NvbnRleHQgKmZy b20gPSByaW5nLT5sYXN0X2NvbnRleHQ7Cj4gPiAgCXUzMiBod19mbGFncyA9IDA7Cj4gPiAtCWlu dCByZXQ7Cj4gPiArCWludCByZXQsIGk7Cj4gPiAgCj4gPiAgCUJVR19PTihmcm9tICE9IE5VTEwg JiYgZnJvbS0+b2JqICE9IE5VTEwgJiYgZnJvbS0+b2JqLT5waW5fY291bnQgPT0gMCk7Cj4gPiAg Cj4gPiAtCWlmIChmcm9tID09IHRvKQo+ID4gKwlpZiAoZnJvbSA9PSB0byAmJiAhdG8tPnJlbWFw X3NsaWNlKQo+ID4gIAkJcmV0dXJuIDA7Cj4gPiAgCj4gPiAgCXJldCA9IGk5MTVfZ2VtX29ial9n Z3R0X3Bpbih0by0+b2JqLCBDT05URVhUX0FMSUdOLCBmYWxzZSwgZmFsc2UpOwo+ID4gQEAgLTQy Myw3ICs0MjUsNyBAQCBzdGF0aWMgaW50IGRvX3N3aXRjaChzdHJ1Y3QgaTkxNV9od19jb250ZXh0 ICp0bykKPiA+ICAKPiA+ICAJaWYgKCF0by0+aXNfaW5pdGlhbGl6ZWQgfHwgaXNfZGVmYXVsdF9j b250ZXh0KHRvKSkKPiA+ICAJCWh3X2ZsYWdzIHw9IE1JX1JFU1RPUkVfSU5ISUJJVDsKPiA+IC0J ZWxzZSBpZiAoV0FSTl9PTl9PTkNFKGZyb20gPT0gdG8pKSAvKiBub3QgeWV0IGV4cGVjdGVkICov Cj4gPiArCWVsc2UgaWYgKGZyb20gPT0gdG8pCj4gPiAgCQlod19mbGFncyB8PSBNSV9GT1JDRV9S RVNUT1JFOwo+IAo+IEhtbS4gV2h5IGRvIHdlIG5lZWQgdG8gcmVzdG9yZSBhY3R1YWxseT8gQ291 bGQganVzdCBsZWF2ZSBNSV9TRVRfQ09OVEVYVAo+IHRvIGJlIGVmZmVjdGl2ZWx5IGEgbm9wIEkg dGhpbmsuCgpJIGRvbid0IHRoaW5rIHNvLiBZb3UgbmVlZCBpdCB0byByZXN0b3JlIHRoZSByZWdp c3Rlciwgd2hpY2ggSSB0aGluayBpdAp3b24ndCBkbyB1bmxlc3MgeW91IGlzc3VlIGEgZm9yY2Ug cmVzdG9yZSwgSSBhbSBqdXN0IGd1ZXNzaW5nLgoKPiAKPiA+ICAKPiA+ICAJcmV0ID0gbWlfc2V0 X2NvbnRleHQocmluZywgdG8sIGh3X2ZsYWdzKTsKPiA+IEBAIC00MzIsNiArNDM0LDE4IEBAIHN0 YXRpYyBpbnQgZG9fc3dpdGNoKHN0cnVjdCBpOTE1X2h3X2NvbnRleHQgKnRvKQo+ID4gIAkJcmV0 dXJuIHJldDsKPiA+ICAJfQo+ID4gIAo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX0wzX1NMSUNF UzsgaSsrKSB7Cj4gPiArCQlpZiAoISh0by0+cmVtYXBfc2xpY2UgJiAoMTw8aSkpKQo+ID4gKwkJ CWNvbnRpbnVlOwo+ID4gKwo+ID4gKwkJcmV0ID0gaTkxNV9nZW1fbDNfcmVtYXAocmluZywgaSk7 Cj4gPiArCQlpZiAoIXJldCkgewo+ID4gKwkJCXRvLT5yZW1hcF9zbGljZSAmPSB+KDE8PGkpOwo+ ID4gKwkJCS8qIElmIGl0IGZhaWxlZCwgdHJ5IGFnYWluIG5leHQgcm91bmQgKi8KPiA+ICsJCQlE Uk1fREVCVUdfRFJJVkVSKCJMMyByZW1hcHBpbmcgZmFpbGVkXG4iKTsKPiA+ICsJCX0KPiAKPiBU aGUgZGVidWcgbWVzc2FnZSBpcyBvbiB0aGUgd3JvbmcgYnJhbmNoLgo+IAoKQW5kIG1heWJlIEkg d2FudGVkIHRoZSB1c2VyIHRvIFRISU5LIGl0IGZhaWxlZCB3aGVuIGl0IGRpZG4ndDsgc28KdGhl eSdsbCBiZSBwbGVhc2FudGx5IHN1cnByaXNlZC4KCj4gPiArCX0KPiA+ICsKPiA+ICAJLyogVGhl IGJhY2tpbmcgb2JqZWN0IGZvciB0aGUgY29udGV4dCBpcyBkb25lIGFmdGVyIHN3aXRjaGluZyB0 byB0aGUKPiA+ICAJICogKm5leHQqIGNvbnRleHQuIFRoZXJlZm9yZSB3ZSBjYW5ub3QgcmV0aXJl IHRoZSBwcmV2aW91cyBjb250ZXh0IHVudGlsCj4gPiAgCSAqIHRoZSBuZXh0IGNvbnRleHQgaGFz IGFscmVhZHkgc3RhcnRlZCBydW5uaW5nLiBJbiBmYWN0LCB0aGUgYmVsb3cgY29kZQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+ID4gaW5kZXggYjA3YmRmYi4uZGViODc4NyAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCj4gPiBAQCAtMTE4LDkgKzExOCw4IEBAIGk5 MTVfbDNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCj4gPiAg CXN0cnVjdCBkcm1fbWlub3IgKmRtaW5vciA9IGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBkcm1f bWlub3IsIGtkZXYpOwo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRtaW5vci0+ ZGV2Owo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcm1fZGV2LT5k ZXZfcHJpdmF0ZTsKPiA+IC0JdWludDMyX3QgbWlzY2NwY3RsOwo+ID4gIAlpbnQgc2xpY2UgPSAo aW50KSh1aW50cHRyX3QpYXR0ci0+cHJpdmF0ZTsKPiA+IC0JaW50IGksIHJldDsKPiA+ICsJaW50 IHJldDsKPiA+ICAKPiA+ICAJY291bnQgPSByb3VuZF9kb3duKGNvdW50LCA0KTsKPiA+ICAKPiA+ IEBAIC0xMzQsMjYgKzEzMywxMyBAQCBpOTE1X2wzX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIHN0 cnVjdCBrb2JqZWN0ICprb2JqLAo+ID4gIAlpZiAocmV0KQo+ID4gIAkJcmV0dXJuIHJldDsKPiA+ ICAKPiA+IC0JaWYgKElTX0hBU1dFTEwoZHJtX2RldikpIHsKPiA+IC0JCWlmIChkZXZfcHJpdi0+ bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xpY2VdKQo+ID4gLQkJCW1lbWNweShidWYsCj4gPiAtCQkJ ICAgICAgIGRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV0gKyAob2Zmc2V0LzQp LAo+ID4gLQkJCSAgICAgICBjb3VudCk7Cj4gPiAtCQllbHNlCj4gPiAtCQkJbWVtc2V0KGJ1Ziwg MCwgY291bnQpOwo+ID4gLQo+ID4gLQkJZ290byBvdXQ7Cj4gPiAtCX0KPiA+IC0KPiA+IC0JbWlz Y2NwY3RsID0gSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RMKTsKPiA+IC0JSTkxNV9XUklURShHRU43 X01JU0NDUENUTCwgbWlzY2NwY3RsICYgfkdFTjdfRE9QX0NMT0NLX0dBVEVfRU5BQkxFKTsKPiA+ IC0KPiA+IC0JZm9yIChpID0gMDsgaSA8IGNvdW50OyBpICs9IDQpCj4gPiAtCQkqKCh1aW50MzJf dCAqKSgmYnVmW2ldKSkgPSBJOTE1X1JFQUQoR0VON19MM0xPR19CQVNFICsgb2Zmc2V0ICsgaSk7 Cj4gPiAtCj4gPiAtCUk5MTVfV1JJVEUoR0VON19NSVNDQ1BDVEwsIG1pc2NjcGN0bCk7Cj4gPiAr CWlmIChkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xpY2VdKQo+ID4gKwkJbWVtY3B5 KGJ1ZiwKPiA+ICsJCSAgICAgICBkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xpY2Vd ICsgKG9mZnNldC80KSwKPiA+ICsJCSAgICAgICBjb3VudCk7Cj4gPiArCWVsc2UKPiA+ICsJCW1l bXNldChidWYsIDAsIGNvdW50KTsKPiA+ICAKPiA+IC1vdXQ6Cj4gPiAgCW11dGV4X3VubG9jaygm ZHJtX2Rldi0+c3RydWN0X211dGV4KTsKPiA+ICAKPiA+ICAJcmV0dXJuIGNvdW50Owo+ID4gQEAg LTE2OCw2ICsxNTQsNyBAQCBpOTE1X2wzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qg a29iamVjdCAqa29iaiwKPiA+ICAJc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0gY29udGFpbmVy X29mKGRldiwgc3RydWN0IGRybV9taW5vciwga2Rldik7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNl ICpkcm1fZGV2ID0gZG1pbm9yLT5kZXY7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRybV9kZXYtPmRldl9wcml2YXRlOwo+ID4gKwlzdHJ1Y3QgaTkxNV9od19jb250 ZXh0ICpjdHg7Cj4gPiAgCXUzMiAqdGVtcCA9IE5VTEw7IC8qIEp1c3QgaGVyZSB0byBtYWtlIGhh bmRsaW5nIGZhaWx1cmVzIGVhc3kgKi8KPiA+ICAJaW50IHNsaWNlID0gKGludCkodWludHB0cl90 KWF0dHItPnByaXZhdGU7Cj4gPiAgCWludCByZXQ7Cj4gPiBAQCAtMTc2LDYgKzE2Myw5IEBAIGk5 MTVfbDNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0ICprb2JqLAo+ID4g IAlpZiAocmV0KQo+ID4gIAkJcmV0dXJuIHJldDsKPiA+ICAKPiA+ICsJaWYgKGRldl9wcml2LT5o d19jb250ZXh0c19kaXNhYmxlZCkKPiA+ICsJCXJldHVybiAtRU5YSU87Cj4gPiArCj4gPiAgCXJl dCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRybV9kZXYpOwo+ID4gIAlpZiAocmV0 KQo+ID4gIAkJcmV0dXJuIHJldDsKPiA+IEBAIC0yMDQsOCArMTk0LDkgQEAgaTkxNV9sM193cml0 ZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCj4gPiAgCj4gPiAgCW1l bWNweShkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xpY2VdICsgKG9mZnNldC80KSwg YnVmLCBjb3VudCk7Cj4gPiAgCj4gPiAtCWlmIChpOTE1X2dlbV9sM19yZW1hcCgmZGV2X3ByaXYt PnJpbmdbUkNTXSwgc2xpY2UpKQo+ID4gLQkJY291bnQgPSAwOwo+ID4gKwkvKiBOQjogV2UgZGVm ZXIgdGhlIHJlbWFwcGluZyB1bnRpbCB3ZSBzd2l0Y2ggdG8gdGhlIGNvbnRleHQgKi8KPiA+ICsJ bGlzdF9mb3JfZWFjaF9lbnRyeShjdHgsICZkZXZfcHJpdi0+Y29udGV4dF9saXN0LCBsaW5rKQo+ ID4gKwkJY3R4LT5yZW1hcF9zbGljZSB8PSAoMTw8c2xpY2UpOwo+ID4gIAo+ID4gIAltdXRleF91 bmxvY2soJmRybV9kZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiAgCj4gPiAtLSAKPiA+IDEuOC40Cj4g PiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwgT1RDCgotLSAKQmVuIFdp ZGF3c2t5LCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=