From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 01/14] drm/i915: Track visible planes in a bitmask Date: Thu, 15 Dec 2016 19:20:36 +0200 Message-ID: <20161215172036.GQ31595@intel.com> References: <1481574931-8658-1-git-send-email-ville.syrjala@linux.intel.com> <1481574931-8658-2-git-send-email-ville.syrjala@linux.intel.com> <20161215150245.GG31595@intel.com> <704af980-a306-14b5-3c25-de387ff2916a@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE3576EA52 for ; Thu, 15 Dec 2016 17:20:40 +0000 (UTC) Content-Disposition: inline In-Reply-To: <704af980-a306-14b5-3c25-de387ff2916a@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTUsIDIwMTYgYXQgMDY6MTE6MjRQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMTUtMTItMTYgb20gMTY6MDIgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6 Cj4gPiBPbiBUaHUsIERlYyAxNSwgMjAxNiBhdCAwMzo1NjowM1BNICswMTAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiA+PiBPcCAxMi0xMi0xNiBvbSAyMTozNSBzY2hyZWVmIHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tOgo+ID4+PiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4+Pgo+ID4+PiBJbiBhIGxvdCBvZiBwbGFjZSB3 ZSB3aXNoIHRvIGtub3cgd2hpY2ggcGxhbmVzIG9uIHRoZSBjcnRjIGFyZSBhY3R1YWxseQo+ID4+ PiB2aXNpYmxlLCBvciBob3cgbWFueSBvZiB0aGVtIHRoZXJlIGFyZS4gTGV0J3Mgc3RhcnQgdHJh Y2tpbmcgdGhhdCBpbiBhCj4gPj4+IGJpdG1hc2sgaW4gdGhlIGNydGMgc3RhdGUuCj4gPj4+Cj4g Pj4+IFdlIGFscmVhZHkgdHJhY2sgZW5hYmxlZCBwbGFuZXMgKGllLiBvbmVzIHdpdGggYW4gZmIg YW5kIGNydGMgc3BlY2lmaWVkIGJ5Cj4gPj4+IHRoZSB1c2VyKSBidXQgdGhhdCdzIG5vdCBxdWl0 ZSB0aGUgc2FtZSB0aGluZyBhcyBlbmFibGVkIHBsYW5lcyBtYXkKPiA+Pj4gc3RpbGwgZW5kIHVw IGJlaW5nIGludmlzaWJsZSBkdWUgdG8gY2xpcHBpbmcgYW5kIHdoYXRub3QuCj4gPj4+Cj4gPj4+ IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gPj4+IC0tLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj X3BsYW5lLmMgfCAgNiArKysKPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyAgICAgIHwgNzkgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ID4+PiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCAgMyArKwo+ID4+PiAgMyBm aWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKPiA+Pj4KPiA+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiA+Pj4gaW5kZXgg ZGJlOWZiNDFhZTUzLi43ZWMxMmVkZGE0ZDQgMTAwNjQ0Cj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gPj4+IEBAIC0xODEsNiArMTgxLDEyIEBAIHN0 YXRpYyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+ID4+PiAgCWlmIChyZXQpCj4gPj4+ICAJCXJldHVybiByZXQ7Cj4gPj4+ICAKPiA+Pj4gKwkv KiBGSVhNRSBwcmUtZzR4IGRvbid0IHdvcmsgbGlrZSB0aGlzICovCj4gPj4+ICsJaWYgKGludGVs X3N0YXRlLT5iYXNlLnZpc2libGUpCj4gPj4+ICsJCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMg fD0gQklUKGludGVsX3BsYW5lLT5pZCk7Cj4gPj4+ICsJZWxzZQo+ID4+PiArCQljcnRjX3N0YXRl LT5hY3RpdmVfcGxhbmVzICY9IH5CSVQoaW50ZWxfcGxhbmUtPmlkKTsKPiA+Pj4gKwo+ID4+PiAg CXJldHVybiBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKCZjcnRjX3N0YXRlLT5iYXNl LCBzdGF0ZSk7Cj4gPj4+ICB9Cj4gPj4+ICAKPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4+PiBpbmRleCBiYzFhZjg3Nzg5YmMuLjNmMDI3MzQxYjBmMyAxMDA2NDQKPiA+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+PiBAQCAtMjc0MSw2ICsy NzQxLDI5IEBAIHVwZGF0ZV9zdGF0ZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiA+Pj4g IH0KPiA+Pj4gIAo+ID4+PiAgc3RhdGljIHZvaWQKPiA+Pj4gK2ludGVsX3NldF9wbGFuZV92aXNp YmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4+PiArCQkJc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKPiA+Pj4gKwkJCWJvb2wgdmlzaWJsZSkK PiA+Pj4gK3sKPiA+Pj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxh bmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwo+ID4+PiArCj4gPj4+ICsJcGxhbmVfc3RhdGUt PmJhc2UudmlzaWJsZSA9IHZpc2libGU7Cj4gPj4+ICsKPiA+Pj4gKwkvKiBGSVhNRSBwcmUtZzR4 IGRvbid0IHdvcmsgbGlrZSB0aGlzICovCj4gPj4+ICsJaWYgKHZpc2libGUpIHsKPiA+Pj4gKwkJ Y3J0Y19zdGF0ZS0+YmFzZS5wbGFuZV9tYXNrIHw9IEJJVChkcm1fcGxhbmVfaW5kZXgoJnBsYW5l LT5iYXNlKSk7Cj4gPj4+ICsJCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgfD0gQklUKHBsYW5l LT5pZCk7Cj4gPj4+ICsJfSBlbHNlIHsKPiA+Pj4gKwkJY3J0Y19zdGF0ZS0+YmFzZS5wbGFuZV9t YXNrICY9IH5CSVQoZHJtX3BsYW5lX2luZGV4KCZwbGFuZS0+YmFzZSkpOwo+ID4+PiArCQljcnRj X3N0YXRlLT5hY3RpdmVfcGxhbmVzICY9IH5CSVQocGxhbmUtPmlkKTsKPiA+Pj4gKwl9Cj4gPj4+ ICsKPiA+Pj4gKwlEUk1fREVCVUdfS01TKCIlcyBhY3RpdmUgcGxhbmVzIDB4JXhcbiIsCj4gPj4+ ICsJCSAgICAgIGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+bmFtZSwKPiA+Pj4gKwkJICAgICAgY3J0 Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyk7Cj4gPj4+ICt9Cj4gPj4+ICsKPiA+Pj4gK3N0YXRpYyB2 b2lkCj4gPj4+ICBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjLAo+ID4+PiAgCQkJICAgICBzdHJ1Y3QgaW50ZWxfaW5pdGlhbF9wbGFuZV9j b25maWcgKnBsYW5lX2NvbmZpZykKPiA+Pj4gIHsKPiA+Pj4gQEAgLTI3OTgsOCArMjgyMSw5IEBA IGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMsCj4gPj4+ICAJICogc2ltcGxlc3Qgc29sdXRpb24gaXMgdG8ganVzdCBkaXNhYmxlIHRoZSBw cmltYXJ5IHBsYW5lIG5vdyBhbmQKPiA+Pj4gIAkgKiBwcmV0ZW5kIHRoZSBCSU9TIG5ldmVyIGhh ZCBpdCBlbmFibGVkLgo+ID4+PiAgCSAqLwo+ID4+PiAtCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBs YW5lX3N0YXRlKS0+YmFzZS52aXNpYmxlID0gZmFsc2U7Cj4gPj4+IC0JY3J0Y19zdGF0ZS0+cGxh bmVfbWFzayAmPSB+KDEgPDwgZHJtX3BsYW5lX2luZGV4KHByaW1hcnkpKTsKPiA+Pj4gKwlpbnRl bF9zZXRfcGxhbmVfdmlzaWJsZSh0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLAo+ID4+ PiArCQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKSwKPiA+Pj4gKwkJCQlmYWxz ZSk7Cj4gPj4+ICAJaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeV9ub2F0b21pYygmaW50ZWxfY3J0 Yy0+YmFzZSk7Cj4gPj4+ICAJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUocHJpbWFyeSwgJmlu dGVsX2NydGMtPmJhc2UpOwo+ID4+PiAgCj4gPj4+IEBAIC0yODI2LDcgKzI4NTAsMTEgQEAgaW50 ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywK PiA+Pj4gIAlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKGZiKTsKPiA+Pj4gIAlwcmltYXJ5LT5m YiA9IHByaW1hcnktPnN0YXRlLT5mYiA9IGZiOwo+ID4+PiAgCXByaW1hcnktPmNydGMgPSBwcmlt YXJ5LT5zdGF0ZS0+Y3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwo+ID4+PiAtCWludGVsX2NydGMt PmJhc2Uuc3RhdGUtPnBsYW5lX21hc2sgfD0gKDEgPDwgZHJtX3BsYW5lX2luZGV4KHByaW1hcnkp KTsKPiA+Pj4gKwo+ID4+PiArCWludGVsX3NldF9wbGFuZV92aXNpYmxlKHRvX2ludGVsX2NydGNf c3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSksCj4gPj4+ICsJCQkJdG9faW50ZWxfcGxhbmVf c3RhdGUocHJpbWFyeS0+c3RhdGUpLAo+ID4+PiArCQkJCXRydWUpOwo+ID4+PiArCj4gPj4+ICAJ YXRvbWljX29yKHRvX2ludGVsX3BsYW5lKHByaW1hcnkpLT5mcm9udGJ1ZmZlcl9iaXQsCj4gPj4+ ICAJCSAgJm9iai0+ZnJvbnRidWZmZXJfYml0cyk7Cj4gPj4+ICB9Cj4gPj4+IEBAIC0xMjQ0MCwx MSArMTI0NjgsMTEgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoc3RydWN0 IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4+PiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gPj4+ ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+Y3J0YzsKPiA+Pj4gIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPj4+IC0J c3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBwbGFuZV9zdGF0ZS0+cGxhbmU7Cj4gPj4+ICsJc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5wbGFu ZSk7Cj4gPj4+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiA+Pj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPj4+ICAJ c3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUgPQo+ID4+PiAtCQl0b19p bnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwo+ID4+PiArCQl0b19pbnRlbF9wbGFuZV9z dGF0ZShwbGFuZS0+YmFzZS5zdGF0ZSk7Cj4gPj4+ICAJYm9vbCBtb2RlX2NoYW5nZWQgPSBuZWVk c19tb2Rlc2V0KGNydGNfc3RhdGUpOwo+ID4+PiAgCWJvb2wgd2FzX2NydGNfZW5hYmxlZCA9IGNy dGMtPnN0YXRlLT5hY3RpdmU7Cj4gPj4+ICAJYm9vbCBpc19jcnRjX2VuYWJsZWQgPSBjcnRjX3N0 YXRlLT5hY3RpdmU7Cj4gPj4+IEBAIC0xMjQ1Miw3ICsxMjQ4MCw3IEBAIGludCBpbnRlbF9wbGFu ZV9hdG9taWNfY2FsY19jaGFuZ2VzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiA+Pj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5mYjsKPiA+ Pj4gIAlpbnQgcmV0Owo+ID4+PiAgCj4gPj4+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g OSAmJiBwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKPiA+Pj4gKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmIHBsYW5lLT5pZCAhPSBQTEFORV9DVVJTT1IpIHsK PiA+Pj4gIAkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoCj4gPj4+ICAJCQl0b19pbnRl bF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLAo+ID4+PiAgCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUo cGxhbmVfc3RhdGUpKTsKPiA+Pj4gQEAgLTEyNDc2LDggKzEyNTA0LDEwIEBAIGludCBpbnRlbF9w bGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKPiA+Pj4gIAkgKiBwZXItcGxhbmUgd20gY29tcHV0YXRpb24gdG8gdGhlIC5jaGVja19wbGFu ZSgpIGhvb2ssIGFuZAo+ID4+PiAgCSAqIG9ubHkgY29tYmluZSB0aGUgcmVzdWx0cyBmcm9tIGFs bCBwbGFuZXMgaW4gdGhlIGN1cnJlbnQgcGxhY2U/Cj4gPj4+ICAJICovCj4gPj4+IC0JaWYgKCFp c19jcnRjX2VuYWJsZWQpCj4gPj4+ICsJaWYgKCFpc19jcnRjX2VuYWJsZWQpIHsKPiA+Pj4gIAkJ dG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpLT5iYXNlLnZpc2libGUgPSB2aXNpYmxl ID0gZmFsc2U7Cj4gPj4+ICsJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSktPmFjdGl2 ZV9wbGFuZXMgJj0gfkJJVChwbGFuZS0+aWQpOwo+ID4+PiArCX0KPiA+Pj4gIAo+ID4+PiAgCWlm ICghd2FzX3Zpc2libGUgJiYgIXZpc2libGUpCj4gPj4+ICAJCXJldHVybiAwOwo+ID4+PiBAQCAt MTI0ODksMTMgKzEyNTE5LDEyIEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2Vz KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+Pj4gIAl0dXJuX29uID0gdmlz aWJsZSAmJiAoIXdhc192aXNpYmxlIHx8IG1vZGVfY2hhbmdlZCk7Cj4gPj4+ICAKPiA+Pj4gIAlE Uk1fREVCVUdfQVRPTUlDKCJbQ1JUQzolZDolc10gaGFzIFtQTEFORTolZDolc10gd2l0aCBmYiAl aVxuIiwKPiA+Pj4gLQkJCSBpbnRlbF9jcnRjLT5iYXNlLmJhc2UuaWQsCj4gPj4+IC0JCQkgaW50 ZWxfY3J0Yy0+YmFzZS5uYW1lLAo+ID4+PiAtCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFt ZSwKPiA+Pj4gKwkJCSBpbnRlbF9jcnRjLT5iYXNlLmJhc2UuaWQsIGludGVsX2NydGMtPmJhc2Uu bmFtZSwKPiA+Pj4gKwkJCSBwbGFuZS0+YmFzZS5iYXNlLmlkLCBwbGFuZS0+YmFzZS5uYW1lLAo+ ID4+PiAgCQkJIGZiID8gZmItPmJhc2UuaWQgOiAtMSk7Cj4gPj4+ICAKPiA+Pj4gIAlEUk1fREVC VUdfQVRPTUlDKCJbUExBTkU6JWQ6JXNdIHZpc2libGUgJWkgLT4gJWksIG9mZiAlaSwgb24gJWks IG1zICVpXG4iLAo+ID4+PiAtCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSwKPiA+Pj4g KwkJCSBwbGFuZS0+YmFzZS5iYXNlLmlkLCBwbGFuZS0+YmFzZS5uYW1lLAo+ID4+PiAgCQkJIHdh c192aXNpYmxlLCB2aXNpYmxlLAo+ID4+PiAgCQkJIHR1cm5fb2ZmLCB0dXJuX29uLCBtb2RlX2No YW5nZWQpOwo+ID4+PiAgCj4gPj4+IEBAIC0xMjUwMywxNSArMTI1MzIsMTUgQEAgaW50IGludGVs X3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ID4+PiAgCQlwaXBlX2NvbmZpZy0+dXBkYXRlX3dtX3ByZSA9IHRydWU7Cj4gPj4+ICAK PiA+Pj4gIAkJLyogbXVzdCBkaXNhYmxlIGN4c3IgYXJvdW5kIHBsYW5lIGVuYWJsZS9kaXNhYmxl ICovCj4gPj4+IC0JCWlmIChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCj4g Pj4+ICsJCWlmIChwbGFuZS0+aWQgIT0gUExBTkVfQ1VSU09SKQo+ID4+PiAgCQkJcGlwZV9jb25m aWctPmRpc2FibGVfY3hzciA9IHRydWU7Cj4gPj4+ICAJfSBlbHNlIGlmICh0dXJuX29mZikgewo+ ID4+PiAgCQlwaXBlX2NvbmZpZy0+dXBkYXRlX3dtX3Bvc3QgPSB0cnVlOwo+ID4+PiAgCj4gPj4+ ICAJCS8qIG11c3QgZGlzYWJsZSBjeHNyIGFyb3VuZCBwbGFuZSBlbmFibGUvZGlzYWJsZSAqLwo+ ID4+PiAtCQlpZiAocGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQo+ID4+PiAr CQlpZiAocGxhbmUtPmlkICE9IFBMQU5FX0NVUlNPUikKPiA+Pj4gIAkJCXBpcGVfY29uZmlnLT5k aXNhYmxlX2N4c3IgPSB0cnVlOwo+ID4+PiAtCX0gZWxzZSBpZiAoaW50ZWxfd21fbmVlZF91cGRh dGUocGxhbmUsIHBsYW5lX3N0YXRlKSkgewo+ID4+PiArCX0gZWxzZSBpZiAoaW50ZWxfd21fbmVl ZF91cGRhdGUoJnBsYW5lLT5iYXNlLCBwbGFuZV9zdGF0ZSkpIHsKPiA+Pj4gIAkJLyogRklYTUUg Ym9sbG9ja3MgKi8KPiA+Pj4gIAkJcGlwZV9jb25maWctPnVwZGF0ZV93bV9wcmUgPSB0cnVlOwo+ ID4+PiAgCQlwaXBlX2NvbmZpZy0+dXBkYXRlX3dtX3Bvc3QgPSB0cnVlOwo+ID4+PiBAQCAtMTI1 MjMsNyArMTI1NTIsNyBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPj4+ICAJCXRvX2ludGVsX2NydGNfc3Rh dGUoY3J0Y19zdGF0ZSktPndtLm5lZWRfcG9zdHZibF91cGRhdGUgPSB0cnVlOwo+ID4+PiAgCj4g Pj4+ICAJaWYgKHZpc2libGUgfHwgd2FzX3Zpc2libGUpCj4gPj4+IC0JCXBpcGVfY29uZmlnLT5m Yl9iaXRzIHw9IHRvX2ludGVsX3BsYW5lKHBsYW5lKS0+ZnJvbnRidWZmZXJfYml0Owo+ID4+PiAr CQlwaXBlX2NvbmZpZy0+ZmJfYml0cyB8PSBwbGFuZS0+ZnJvbnRidWZmZXJfYml0Owo+ID4+PiAg Cj4gPj4+ICAJLyoKPiA+Pj4gIAkgKiBXYUN4U1JEaXNhYmxlZEZvclNwcml0ZVNjYWxpbmc6aXZi Cj4gPj4+IEBAIC0xMjUzMSw3ICsxMjU2MCw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2Fs Y19jaGFuZ2VzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+Pj4gIAkgKiBj c3RhdGUtPnVwZGF0ZV93bSB3YXMgYWxyZWFkeSBzZXQgYWJvdmUsIHNvIHRoaXMgZmxhZyB3aWxs Cj4gPj4+ICAJICogdGFrZSBlZmZlY3Qgd2hlbiB3ZSBjb21taXQgYW5kIHByb2dyYW0gd2F0ZXJt YXJrcy4KPiA+Pj4gIAkgKi8KPiA+Pj4gLQlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZ UEVfT1ZFUkxBWSAmJiBJU19JVllCUklER0UoZGV2X3ByaXYpICYmCj4gPj4+ICsJaWYgKHBsYW5l LT5pZCA9PSBQTEFORV9TUFJJVEUwICYmIElTX0lWWUJSSURHRShkZXZfcHJpdikgJiYKPiA+Pj4g IAkgICAgbmVlZHNfc2NhbGluZyh0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSkpICYm Cj4gPj4+ICAJICAgICFuZWVkc19zY2FsaW5nKG9sZF9wbGFuZV9zdGF0ZSkpCj4gPj4+ICAJCXBp cGVfY29uZmlnLT5kaXNhYmxlX2xwX3dtID0gdHJ1ZTsKPiA+Pj4gQEAgLTE2ODc2LDE1ICsxNjkw NSwxNCBAQCBzdGF0aWMgYm9vbCBwcmltYXJ5X2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lKQo+ID4+PiAgLyogRklYTUUgcmVhZCBvdXQgZnVsbCBwbGFuZSBzdGF0ZSBmb3Ig YWxsIHBsYW5lcyAqLwo+ID4+PiAgc3RhdGljIHZvaWQgcmVhZG91dF9wbGFuZV9zdGF0ZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+Pj4gIHsKPiA+Pj4gLQlzdHJ1Y3QgZHJtX3BsYW5lICpw cmltYXJ5ID0gY3J0Yy0+YmFzZS5wcmltYXJ5Owo+ID4+PiAtCXN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUgPQo+ID4+PiAtCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwcmltYXJ5 LT5zdGF0ZSk7Cj4gPj4+ICsJc3RydWN0IGludGVsX3BsYW5lICpwcmltYXJ5ID0gdG9faW50ZWxf cGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KTsKPiA+Pj4gKwlib29sIHZpc2libGU7Cj4gPj4+ICAK PiA+Pj4gLQlwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlID0gY3J0Yy0+YWN0aXZlICYmCj4gPj4+ IC0JCXByaW1hcnlfZ2V0X2h3X3N0YXRlKHRvX2ludGVsX3BsYW5lKHByaW1hcnkpKTsKPiA+Pj4g Kwl2aXNpYmxlID0gY3J0Yy0+YWN0aXZlICYmIHByaW1hcnlfZ2V0X2h3X3N0YXRlKHByaW1hcnkp Owo+ID4+PiAgCj4gPj4+IC0JaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUpCj4gPj4+IC0J CWNydGMtPmJhc2Uuc3RhdGUtPnBsYW5lX21hc2sgfD0gMSA8PCBkcm1fcGxhbmVfaW5kZXgocHJp bWFyeSk7Cj4gPj4+ICsJaW50ZWxfc2V0X3BsYW5lX3Zpc2libGUodG9faW50ZWxfY3J0Y19zdGF0 ZShjcnRjLT5iYXNlLnN0YXRlKSwKPiA+Pj4gKwkJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwcmlt YXJ5LT5iYXNlLnN0YXRlKSwKPiA+Pj4gKwkJCQl2aXNpYmxlKTsKPiA+Pj4gIH0KPiA+Pj4gIAo+ ID4+PiAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gPj4+IEBAIC0xNzE3MSw3ICsxNzE5OSwxMCBAQCB2b2lkIGludGVs X21vZGVzZXRfZ2VtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+Pj4gIAkJCWMtPnBy aW1hcnktPmZiID0gTlVMTDsKPiA+Pj4gIAkJCWMtPnByaW1hcnktPmNydGMgPSBjLT5wcmltYXJ5 LT5zdGF0ZS0+Y3J0YyA9IE5VTEw7Cj4gPj4+ICAJCQl1cGRhdGVfc3RhdGVfZmIoYy0+cHJpbWFy eSk7Cj4gPj4+IC0JCQljLT5zdGF0ZS0+cGxhbmVfbWFzayAmPSB+KDEgPDwgZHJtX3BsYW5lX2lu ZGV4KGMtPnByaW1hcnkpKTsKPiA+Pj4gKwo+ID4+PiArCQkJaW50ZWxfc2V0X3BsYW5lX3Zpc2li bGUodG9faW50ZWxfY3J0Y19zdGF0ZShjLT5zdGF0ZSksCj4gPj4+ICsJCQkJCQl0b19pbnRlbF9w bGFuZV9zdGF0ZShjLT5wcmltYXJ5LT5zdGF0ZSksCj4gPj4+ICsJCQkJCQlmYWxzZSk7Cj4gPj4+ ICAJCX0KPiA+Pj4gIAl9Cj4gPj4+ICB9Cj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g Pj4+IGluZGV4IDhmNGRkY2EwZjUyMS4uMjBiYThmNDhiYzNiIDEwMDY0NAo+ID4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+PiBAQCAtNjY5LDYgKzY2OSw5IEBAIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlIHsKPiA+Pj4gIAo+ID4+PiAgCS8qIEdhbW1hIG1vZGUgcHJvZ3JhbW1lZCBv biB0aGUgcGlwZSAqLwo+ID4+PiAgCXVpbnQzMl90IGdhbW1hX21vZGU7Cj4gPj4+ICsKPiA+Pj4g KwkvKiBiaXRtYXNrIG9mIHZpc2libGUgcGxhbmVzIChlbnVtIHBsYW5lX2lkKSAqLwo+ID4+PiAr CXU4IGFjdGl2ZV9wbGFuZXM7Cj4gPj4gQ2FuIHdlIGNoYW5nZSB0aGlzIHRvIHVpbnQzMl90IDE8 PGRybV9wbGFuZV9pbmRleCBsaWtlIHRoZSBvdGhlciBtYXNrcz8KPiA+Pgo+ID4+IHBsYW5lX21h c2ssIGNvbm5lY3Rvcl9tYXNrIGFuZCBlbmNvZGVyX21hc2sgdXNlIDEgPDwgaW5kZXguCj4gPj4g UGVyaGFwcyBuYW1lIGl0IGFjdGl2ZV9wbGFuZXNfbWFzayB0b28uCj4gPiBUaGUgd2F5IEkgdXNl IGl0IHdvdWxkbid0IGxlbmQgaXRzZWxmIHdlbGwgdG8gdGhhdC4gSSBkb24ndCBoYXZlIGFueQo+ ID4gcGxhbmUgc3RydWN0cyBhcm91bmQgaW4gYSBidW5jaCBvZiB0aGUgcGxhY2VzIHdoZXJlIHRo aXMgZ2V0cyB1c2VkLgo+ID4KPiBEbyB5b3UgdXNlIHRoaXMgb3V0c2lkZSBvZiAxMy8xND8gSWYg bm90IHBsZWFzZSBkcm9wIHRoZSBwYXRjaCBmcm9tIHRoaXMgc2VyaWVzLiA6KQoKSXQncyB1c2Vk IGluIG11bHRpcGxlIHBsYWNlcy4KCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=