From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH i-g-t] lib/igt_kms: Add COMIT_ATOMIC to igt_display_commit2() Date: Thu, 21 Jan 2016 10:57:50 -0800 Message-ID: <20160121185750.GA13311@intel.com> References: <1452848784-7970-1-git-send-email-marius.c.vlad@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 4B99B6E0D7 for ; Thu, 21 Jan 2016 10:57:51 -0800 (PST) Content-Disposition: inline In-Reply-To: <1452848784-7970-1-git-send-email-marius.c.vlad@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Marius Vlad Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKYW4gMTUsIDIwMTYgYXQgMTE6MDY6MjRBTSArMDIwMCwgTWFyaXVzIFZsYWQgd3Jv dGU6Cj4gU28gZmFyLCB3ZSBoYWQgb25seSBDT01NSVRfVU5JVkVSU0FMIGFuZCBDT01NSVRfTEVH QUNZLCB1c2luZwo+IGRybU1vZGVTZXRQbGFuZSgpL2RybVNldENydGMoKS4gVGhpcyBwYXRjaCBh ZGRzIENPTU1JVF9BVE9NSUMKPiB0byBpZ3RfZGlzcGxheV9jb21taXQyKCkgdGhhdCBtYWtlcyB1 c2Ugb2YgZHJtTW9kZUF0b21pY0NvbW1pdCgpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hcml1cyBW bGFkIDxtYXJpdXMuYy52bGFkQGludGVsLmNvbT4KCkhtbSwgdGhpcyBsb29rcyBwcmV0dHkgc2lt aWxhciB0byB0aGUgSUdUIGluZnJhc3RydWN0dXJlIEkgYWRkZWQgZm9yCm51Y2xlYXIvYXRvbWlj IGFib3V0IGEgeWVhciBhZ286CgogICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0cm9wZS9p bnRlbC1ncHUtdG9vbHMvY29tbWl0cy9udWNsZWFyX3BhZ2VmbGlwCgpTcGVjaWZpY2FsbHkgdGhl IGNvbW1pdCAibGliL2ttczogQWRkIG51Y2xlYXIgcGFnZWZsaXAgY29tbWl0IHN0eWxlIgoKQXQg dGhlIHRpbWUgYXRvbWljIHdhcyBzdGlsbCB0b28gbmV3IGFuZCB0aGUgdmFyaW91cyBwaWVjZXMg bGlrZSBsaWJkcm0Kd2VyZW4ndCByZWFkaWx5IGF2YWlsYWJsZSBzbyB3ZSBkaWRuJ3QgYWN0dWFs bHkgbWVyZ2UgaXQuICBUaGVuIEkgZ290CnRvbyBidXN5IGFuZCBuZXZlciB1cGRhdGVkL21lcmdl ZCBpdCBvbmNlIHRoZSBBUEkgZmluYWxpemVkLgoKT25lIG9mIHRoZSBWUEcgdmFsaWRhdGlvbiB0 ZWFtcyB3YXMgaW4gdGhlIHByb2Nlc3Mgb2YgcmVzdXJyZWN0aW5nIG15Cm9sZCBJR1Qgd29yayBh bmQgdXBkYXRpbmcgaXQgdG8gbWF0Y2ggdGhlIHNtYWxsIGNoYW5nZXMgdGhhdCBzbnVjayBpbiBh cwp0aGUgQVBJIGZpbmFsaXplZDsgaXQgbWF5IG1ha2UgbW9yZSBzZW5zZSBmb3IgdGhlbSB0byBs ZXZlcmFnZSB5b3VyIHdvcmsKaGVyZSBpbnN0ZWFkIHNpbmNlIGl0J3MgYWxyZWFkeSB1cC10by1k YXRlLiAgK0NjIEF2aW5hc2guCgpBbHNvLCBhcyBub3RlZCBieSBNYWFydGVuLCB5b3UncmUgY2Fs bGluZyBkcm1Nb2RlQXRvbWljQ29tbWl0KCkgYXQgdGhlCndyb25nIGxheWVyIGFuZCBzdWJtaXR0 aW5nIGV2ZXJ5IHNpbmdsZSBwbGFuZSB1cGRhdGUgYXMgaXRzIG93bgp0cmFuc2FjdGlvbiAoYW5k IG1pc3NpbmcgdGhlIENSVEMtbGV2ZWwgdXBkYXRlcz8pLiAgWW91IGVpdGhlciB3YW50IHRvCmNh bGwgY29tbWl0IG9uY2UgcGVyLXRvcCBsZXZlbCB1cGRhdGUgKGZvciB0cnVlIGF0b21pYykgb3Ig b25jZSBwZXIgQ1JUQwp1cGRhdGUgKGZvciB0aGUgIm51Y2xlYXIgcGFnZWZsaXAiIHN1YnNldCku ICBJIGRvbid0IHRoaW5rIEkgaGFkIGl0IGluCm15IGdpdGh1YiByZXBvLCBidXQgSSBoYWQgc29t ZSBwYXRjaGVzIHRoYXQgbWFkZSB0aGVzZSB0d28gc2VwYXJhdGUKY29tbWl0IHN0eWxlcywgQ09N TUlUX0FUT01JQyBhbmQgQ09NTUlUX05VQ0xFQVIgdGhhdCB3b3VsZCBhbGxvdyBlaXRoZXIKb2Yg dGhlc2Ugc3R5bGVzIHRvIGJlIHVzZWQuCgoKTWF0dAoKPiAtLS0KPiAgbGliL2lndF9rbXMuYyB8 IDE5MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystCj4gIGxpYi9pZ3Rfa21zLmggfCAgMzMgKysrKysrKysrLQo+ICAyIGZpbGVzIGNoYW5n ZWQsIDIyMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9s aWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwo+IGluZGV4IDQ5NzExOGEuLjYxZjdhMzkgMTAw NjQ0Cj4gLS0tIGEvbGliL2lndF9rbXMuYwo+ICsrKyBiL2xpYi9pZ3Rfa21zLmMKPiBAQCAtMTMw Niw2ICsxMzA2LDE5MSBAQCBzdGF0aWMgdWludDMyX3QgaWd0X3BsYW5lX2dldF9mYl9nZW1faGFu ZGxlKGlndF9wbGFuZV90ICpwbGFuZSkKPiAgCWlndF9hc3NlcnQociA9PSAwKTsJXAo+ICB9Cj4g IAo+ICtzdGF0aWMgY29uc3QgY2hhciAqaWd0X3BsYW5lX3Byb3BfbmFtZXNbSUdUX05VTV9QTEFO RV9QUk9QU10gPSB7Cj4gKwkiU1JDX1giLAo+ICsJIlNSQ19ZIiwKPiArCSJTUkNfVyIsCj4gKwki U1JDX0giLAo+ICsJIkNSVENfWCIsCj4gKwkiQ1JUQ19ZIiwKPiArCSJDUlRDX1ciLAo+ICsJIkNS VENfSCIsCj4gKwkiRkJfSUQiLAo+ICsJIkNSVENfSUQiLAo+ICsJInR5cGUiCj4gK307Cj4gKwo+ ICsvKgo+ICsgKiBSZXRyaWV2ZSBhbGwgdGhlIHByb3BlcmllcyBzcGVjaWZpZWQgaW4gcHJvcHNf bmFtZSBhbmQgc3RvcmUgdGhlbSBpbnRvCj4gKyAqIHBsYW5lLT5hdG9taWNfcHJvcHNfcGxhbmUu Cj4gKyAqLwo+ICtzdGF0aWMgdm9pZAo+ICtpZ3RfYXRvbWljX2ZpbGxfcGxhbmVfcHJvcHMoaWd0 X2Rpc3BsYXlfdCAqZGlzcGxheSwgaWd0X3BsYW5lX3QgKnBsYW5lLAo+ICsJCQkgICAgaW50IHR5 cGUsIGludCBudW1fcHJvcHMsIGNvbnN0IGNoYXIgKipwcm9wX25hbWVzKQo+ICt7Cj4gKwlkcm1N b2RlT2JqZWN0UHJvcGVydGllc1B0ciBwcm9wczsKPiArCWludCBpLCBqLCBmZDsKPiArCj4gKwlm ZCA9IGRpc3BsYXktPmRybV9mZDsKPiArCj4gKwlwcm9wcyA9IGRybU1vZGVPYmplY3RHZXRQcm9w ZXJ0aWVzKGZkLCBwbGFuZS0+ZHJtX3BsYW5lLT5wbGFuZV9pZCwgdHlwZSk7Cj4gKwlpZ3RfYXNz ZXJ0KHByb3BzKTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgcHJvcHMtPmNvdW50X3Byb3BzOyBp KyspIHsKPiArCQlkcm1Nb2RlUHJvcGVydHlQdHIgcHJvcCA9Cj4gKwkJCWRybU1vZGVHZXRQcm9w ZXJ0eShmZCwgcHJvcHMtPnByb3BzW2ldKTsKPiArCj4gKwkJZm9yIChqID0gMDsgaiA8IG51bV9w cm9wczsgaisrKSB7Cj4gKwkJCWlmIChzdHJjbXAocHJvcC0+bmFtZSwgcHJvcF9uYW1lc1tqXSkg IT0gMCkKPiArCQkJCWNvbnRpbnVlOwo+ICsJCQlwbGFuZS0+YXRvbWljX3Byb3BzX3BsYW5lW2pd ID0gcHJvcHMtPnByb3BzW2ldOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJCWRybU1vZGVG cmVlUHJvcGVydHkocHJvcCk7Cj4gKwl9Cj4gKwo+ICsJZHJtTW9kZUZyZWVPYmplY3RQcm9wZXJ0 aWVzKHByb3BzKTsKPiArfQo+ICsKPiArLyoKPiArICogQ29tbWl0IHBvc2l0aW9uIGFuZCBmYiBj aGFuZ2VzIHRvIGEgRFJNIHBsYW5lIHZpYSB0aGUgQXRvbWljQ29tbWl0KCkKPiArICogaW9jdGw7 IGlmIHRoZSBEUk0gY2FsbCB0byBwcm9ncmFtIHRoZSBwbGFuZSBmYWlscywgd2UnbGwgZWl0aGVy IGZhaWwKPiArICogaW1tZWRpYXRlbHkgKGZvciB0ZXN0cyB0aGF0IGV4cGVjdCB0aGUgY29tbWl0 IHRvIHN1Y2NlZWQpIG9yIHJldHVybiB0aGUKPiArICogZmFpbHVyZSBjb2RlIChmb3IgdGVzdHMg dGhhdCBleHBlY3QgYSBzcGVjaWZpYyBlcnJvciBjb2RlKS4KPiArICovCj4gK3N0YXRpYyBpbnQK PiAraWd0X2F0b21pY19wbGFuZV9jb21taXQoaWd0X3BsYW5lX3QgKnBsYW5lLCBpZ3Rfb3V0cHV0 X3QgKm91dHB1dCwKPiArCQkJYm9vbCBmYWlsX29uX2Vycm9yKQo+ICt7Cj4gKwlpZ3RfZGlzcGxh eV90ICpkaXNwbGF5ID0gb3V0cHV0LT5kaXNwbGF5Owo+ICsKPiArCXVpbnQzMl90IGZiX2lkLCBj cnRjX2lkOwo+ICsJaW50IHJldDsKPiArCXVpbnQzMl90IHNyY194Owo+ICsJdWludDMyX3Qgc3Jj X3k7Cj4gKwl1aW50MzJfdCBzcmNfdzsKPiArCXVpbnQzMl90IHNyY19oOwo+ICsJaW50MzJfdCBj cnRjX3g7Cj4gKwlpbnQzMl90IGNydGNfeTsKPiArCXVpbnQzMl90IGNydGNfdzsKPiArCXVpbnQz Ml90IGNydGNfaDsKPiArCWRybU1vZGVBdG9taWNSZXEgKnJlcTsKPiArCj4gKwlpZ3RfYXNzZXJ0 KHBsYW5lLT5kcm1fcGxhbmUpOwo+ICsKPiArCWRvX29yX2RpZShkcm1TZXRDbGllbnRDYXAoZGlz cGxheS0+ZHJtX2ZkLCBEUk1fQ0xJRU5UX0NBUF9BVE9NSUMsIDEpKTsKPiArCj4gKwkvKiBpdCdz IGFuIGVycm9yIHRvIHRyeSBhbiB1bnN1cHBvcnRlZCBmZWF0dXJlICovCj4gKwlpZ3RfYXNzZXJ0 KGlndF9wbGFuZV9zdXBwb3J0c19yb3RhdGlvbihwbGFuZSkgfHwKPiArCQkJIXBsYW5lLT5yb3Rh dGlvbl9jaGFuZ2VkKTsKPiArCj4gKwlmYl9pZCA9IGlndF9wbGFuZV9nZXRfZmJfaWQocGxhbmUp Owo+ICsJY3J0Y19pZCA9IG91dHB1dC0+Y29uZmlnLmNydGMtPmNydGNfaWQ7Cj4gKwo+ICsJaWYg KChwbGFuZS0+ZmJfY2hhbmdlZCB8fCBwbGFuZS0+c2l6ZV9jaGFuZ2VkKSAmJiBmYl9pZCA9PSAw KSB7Cj4gKwo+ICsJCUxPRyhkaXNwbGF5LAo+ICsJCSAgICAiJXM6IGRybU1vZGVBdG9taWNDb21t aXQgcGlwZSAlcywgcGxhbmUgJWQsIGRpc2FibGluZ1xuIiwKPiArCQkgICAgIGlndF9vdXRwdXRf bmFtZShvdXRwdXQpLAo+ICsJCSAgICAga21zdGVzdF9waXBlX25hbWUob3V0cHV0LT5jb25maWcu cGlwZSksCj4gKwkJICAgICBwbGFuZS0+aW5kZXgpOwo+ICsKPiArCQlyZXEgPSBkcm1Nb2RlQXRv bWljQWxsb2MoKTsKPiArCQlpZ3RfYXRvbWljX2ZpbGxfcGxhbmVfcHJvcHMoZGlzcGxheSwgcGxh bmUsCj4gKwkJCQkJICAgIERSTV9NT0RFX09CSkVDVF9QTEFORSwKPiArCQkJCQkgICAgSUdUX05V TV9QTEFORV9QUk9QUywKPiArCQkJCQkgICAgaWd0X3BsYW5lX3Byb3BfbmFtZXMpOwo+ICsKPiAr CQlkcm1Nb2RlQXRvbWljU2V0Q3Vyc29yKHJlcSwgMCk7Cj4gKwo+ICsJCS8qIHBvcHVsYXRlIHBs YW5lIHJlcSAqLwo+ICsJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUs IElHVF9QTEFORV9DUlRDX0lELCBjcnRjX2lkKTsKPiArCj4gKwkJaWd0X2F0b21pY19wb3B1bGF0 ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwgSUdUX1BMQU5FX1NSQ19YLCBJR1RfRklYRUQoMCwgMCkp Owo+ICsJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUsIElHVF9QTEFO RV9TUkNfWSwgSUdUX0ZJWEVEKDAsIDApKTsKPiArCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5l X3JlcShyZXEsIHBsYW5lLCBJR1RfUExBTkVfU1JDX1csIElHVF9GSVhFRCgwLCAwKSk7Cj4gKwkJ aWd0X2F0b21pY19wb3B1bGF0ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwgSUdUX1BMQU5FX1NSQ19I LCBJR1RfRklYRUQoMCwgMCkpOwo+ICsKPiArCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3Jl cShyZXEsIHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19YLCAwKTsKPiArCQlpZ3RfYXRvbWljX3BvcHVs YXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19ZLCAwKTsKPiArCQlpZ3Rf YXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19XLCAw KTsKPiArCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExB TkVfQ1JUQ19ILCAwKTsKPiArCj4gKwkJcmV0ID0gZHJtTW9kZUF0b21pY0NvbW1pdChkaXNwbGF5 LT5kcm1fZmQsIHJlcSwgMCwgTlVMTCk7Cj4gKwkJZHJtTW9kZUF0b21pY0ZyZWUocmVxKTsKPiAr Cj4gKwkJQ0hFQ0tfUkVUVVJOKHJldCwgZmFpbF9vbl9lcnJvcik7Cj4gKwo+ICsJfSBlbHNlIGlm IChwbGFuZS0+ZmJfY2hhbmdlZCB8fCBwbGFuZS0+cG9zaXRpb25fY2hhbmdlZCB8fAo+ICsJCQlw bGFuZS0+c2l6ZV9jaGFuZ2VkKSB7Cj4gKwo+ICsJCXNyY194ID0gSUdUX0ZJWEVEKHBsYW5lLT5m Yi0+c3JjX3gsMCk7IC8qIHNyY194ICovCj4gKwkJc3JjX3kgPSBJR1RfRklYRUQocGxhbmUtPmZi LT5zcmNfeSwwKTsgLyogc3JjX3kgKi8KPiArCQlzcmNfdyA9IElHVF9GSVhFRChwbGFuZS0+ZmIt PnNyY193LDApOyAvKiBzcmNfdyAqLwo+ICsJCXNyY19oID0gSUdUX0ZJWEVEKHBsYW5lLT5mYi0+ c3JjX2gsMCk7IC8qIHNyY19oICovCj4gKwkJY3J0Y194ID0gcGxhbmUtPmNydGNfeDsKPiArCQlj cnRjX3kgPSBwbGFuZS0+Y3J0Y195Owo+ICsJCWNydGNfdyA9IHBsYW5lLT5jcnRjX3c7Cj4gKwkJ Y3J0Y19oID0gcGxhbmUtPmNydGNfaDsKPiArCj4gKwkJTE9HKGRpc3BsYXksCj4gKwkJICAgICIl czogZHJtTW9kZUF0b21pY0NvbW1pdCAlcy4lZCwgZmIgJXUsIHNyYyA9ICglZCwgJWQpICIKPiAr CQkgICAgIiV1eCV1IGRzdCA9ICgldSwgJXUpICV1eCV1XG4iLAo+ICsJCSAgICBpZ3Rfb3V0cHV0 X25hbWUob3V0cHV0KSwKPiArCQkgICAga21zdGVzdF9waXBlX25hbWUob3V0cHV0LT5jb25maWcu cGlwZSksCj4gKwkJICAgIHBsYW5lLT5pbmRleCwKPiArCQkgICAgZmJfaWQsCj4gKwkJICAgIHNy Y194ID4+IDE2LCBzcmNfeSA+PiAxNiwgc3JjX3cgPj4gMTYsIHNyY19oID4+IDE2LAo+ICsJCSAg ICBjcnRjX3gsIGNydGNfeSwgY3J0Y193LCBjcnRjX2gpOwo+ICsKPiArCj4gKwkJcmVxID0gZHJt TW9kZUF0b21pY0FsbG9jKCk7Cj4gKwkJaWd0X2F0b21pY19maWxsX3BsYW5lX3Byb3BzKGRpc3Bs YXksIHBsYW5lLAo+ICsJCQkJCSAgICBEUk1fTU9ERV9PQkpFQ1RfUExBTkUsCj4gKwkJCQkJICAg IElHVF9OVU1fUExBTkVfUFJPUFMsCj4gKwkJCQkJICAgIGlndF9wbGFuZV9wcm9wX25hbWVzKTsK PiArCj4gKwkJZHJtTW9kZUF0b21pY1NldEN1cnNvcihyZXEsIDApOwo+ICsKPiArCQkvKiBwb3B1 bGF0ZSBwbGFuZSByZXEgKi8KPiArCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEs IHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19JRCwgY3J0Y19pZCk7Cj4gKwkJaWd0X2F0b21pY19wb3B1 bGF0ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwgSUdUX1BMQU5FX0ZCX0lELCBmYl9pZCk7Cj4gKwo+ ICsJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUsIElHVF9QTEFORV9T UkNfWCwgc3JjX3gpOwo+ICsJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxh bmUsIElHVF9QTEFORV9TUkNfWSwgc3JjX3kpOwo+ICsJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxh bmVfcmVxKHJlcSwgcGxhbmUsIElHVF9QTEFORV9TUkNfVywgc3JjX3cpOwo+ICsJCWlndF9hdG9t aWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUsIElHVF9QTEFORV9TUkNfSCwgc3JjX2gp Owo+ICsKPiArCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1Rf UExBTkVfQ1JUQ19YLCBjcnRjX3gpOwo+ICsJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVx KHJlcSwgcGxhbmUsIElHVF9QTEFORV9DUlRDX1ksIGNydGNfeSk7Cj4gKwkJaWd0X2F0b21pY19w b3B1bGF0ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwgSUdUX1BMQU5FX0NSVENfVywgY3J0Y193KTsK PiArCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExBTkVf Q1JUQ19ILCBjcnRjX2gpOwo+ICsKPiArCQlyZXQgPSBkcm1Nb2RlQXRvbWljQ29tbWl0KGRpc3Bs YXktPmRybV9mZCwgcmVxLCAwLCBOVUxMKTsKPiArCQlkcm1Nb2RlQXRvbWljRnJlZShyZXEpOwo+ ICsKPiArCQlDSEVDS19SRVRVUk4ocmV0LCBmYWlsX29uX2Vycm9yKTsKPiArCX0KPiArCj4gKwlw bGFuZS0+ZmJfY2hhbmdlZCA9IGZhbHNlOwo+ICsJcGxhbmUtPnBvc2l0aW9uX2NoYW5nZWQgPSBm YWxzZTsKPiArCXBsYW5lLT5zaXplX2NoYW5nZWQgPSBmYWxzZTsKPiArCj4gKwo+ICsJaWYgKHBs YW5lLT5yb3RhdGlvbl9jaGFuZ2VkKSB7Cj4gKwkJcmV0ID0gaWd0X3BsYW5lX3NldF9wcm9wZXJ0 eShwbGFuZSwgcGxhbmUtPnJvdGF0aW9uX3Byb3BlcnR5LAo+ICsJCQkJCSAgICAgcGxhbmUtPnJv dGF0aW9uKTsKPiArCj4gKwkJcGxhbmUtPnJvdGF0aW9uX2NoYW5nZWQgPSBmYWxzZTsKPiArCQlD SEVDS19SRVRVUk4ocmV0LCBmYWlsX29uX2Vycm9yKTsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiArCj4gKwo+ICAvKgo+ICAgKiBDb21taXQgcG9zaXRpb24gYW5kIGZiIGNoYW5n ZXMgdG8gYSBEUk0gcGxhbmUgdmlhIHRoZSBTZXRQbGFuZSBpb2N0bDsgaWYgdGhlCj4gICAqIERS TSBjYWxsIHRvIHByb2dyYW0gdGhlIHBsYW5lIGZhaWxzLCB3ZSdsbCBlaXRoZXIgZmFpbCBpbW1l ZGlhdGVseSAoZm9yCj4gQEAgLTE1NTgsNyArMTc0MywxMCBAQCBzdGF0aWMgaW50IGlndF9wbGFu ZV9jb21taXQoaWd0X3BsYW5lX3QgKnBsYW5lLAo+ICAJCXJldHVybiBpZ3RfcHJpbWFyeV9wbGFu ZV9jb21taXRfbGVnYWN5KHBsYW5lLCBvdXRwdXQsCj4gIAkJCQkJCSAgICAgICBmYWlsX29uX2Vy cm9yKTsKPiAgCX0gZWxzZSB7Cj4gLQkJcmV0dXJuIGlndF9kcm1fcGxhbmVfY29tbWl0KHBsYW5l LCBvdXRwdXQsIGZhaWxfb25fZXJyb3IpOwo+ICsJCWlmIChzID09IENPTU1JVF9BVE9NSUMpCj4g KwkJCXJldHVybiBpZ3RfYXRvbWljX3BsYW5lX2NvbW1pdChwbGFuZSwgb3V0cHV0LCBmYWlsX29u X2Vycm9yKTsKPiArCQllbHNlCj4gKwkJCXJldHVybiBpZ3RfZHJtX3BsYW5lX2NvbW1pdChwbGFu ZSwgb3V0cHV0LCBmYWlsX29uX2Vycm9yKTsKPiAgCX0KPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEv bGliL2lndF9rbXMuaCBiL2xpYi9pZ3Rfa21zLmgKPiBpbmRleCA5NGYzMTVmLi44MWQ4ZGQ3IDEw MDY0NAo+IC0tLSBhL2xpYi9pZ3Rfa21zLmgKPiArKysgYi9saWIvaWd0X2ttcy5oCj4gQEAgLTE1 Niw5ICsxNTYsMjcgQEAgdm9pZCBrbXN0ZXN0X3Vuc2V0X2FsbF9jcnRjcyhpbnQgZHJtX2ZkLCBk cm1Nb2RlUmVzUHRyIHJlc291cmNlcyk7Cj4gIGVudW0gaWd0X2NvbW1pdF9zdHlsZSB7Cj4gIAlD T01NSVRfTEVHQUNZID0gMCwKPiAgCUNPTU1JVF9VTklWRVJTQUwsCj4gLQkvKiBXZSdsbCBhZGQg YXRvbWljIGhlcmUgZXZlbnR1YWxseS4gKi8KPiArCUNPTU1JVF9BVE9NSUMsCj4gIH07Cj4gIAo+ ICtlbnVtIGlndF9hdG9taWNfcGxhbmVfcHJvcGVydGllcyB7Cj4gKyAgICAgICBJR1RfUExBTkVf U1JDX1ggPSAwLAo+ICsgICAgICAgSUdUX1BMQU5FX1NSQ19ZLAo+ICsgICAgICAgSUdUX1BMQU5F X1NSQ19XLAo+ICsgICAgICAgSUdUX1BMQU5FX1NSQ19ILAo+ICsKPiArICAgICAgIElHVF9QTEFO RV9DUlRDX1gsCj4gKyAgICAgICBJR1RfUExBTkVfQ1JUQ19ZLAo+ICsgICAgICAgSUdUX1BMQU5F X0NSVENfVywKPiArICAgICAgIElHVF9QTEFORV9DUlRDX0gsCj4gKwo+ICsgICAgICAgSUdUX1BM QU5FX0ZCX0lELAo+ICsgICAgICAgSUdUX1BMQU5FX0NSVENfSUQsCj4gKyAgICAgICBJR1RfUExB TkVfVFlQRSwKPiArICAgICAgIElHVF9OVU1fUExBTkVfUFJPUFMKPiArfTsKPiArCj4gKwo+ICB0 eXBlZGVmIHN0cnVjdCBpZ3RfZGlzcGxheSBpZ3RfZGlzcGxheV90Owo+ICB0eXBlZGVmIHN0cnVj dCBpZ3RfcGlwZSBpZ3RfcGlwZV90Owo+ICB0eXBlZGVmIHVpbnQzMl90IGlndF9maXhlZF90OwkJ CS8qIDE2LjE2IGZpeGVkIHBvaW50ICovCj4gQEAgLTIwMCw2ICsyMTgsNyBAQCB0eXBlZGVmIHN0 cnVjdCB7Cj4gIAkvKiBwYW5uaW5nIG9mZnNldCB3aXRoaW4gdGhlIGZiICovCj4gIAl1bnNpZ25l ZCBpbnQgcGFuX3gsIHBhbl95Owo+ICAJaWd0X3JvdGF0aW9uX3Qgcm90YXRpb247Cj4gKwl1aW50 MzJfdCBhdG9taWNfcHJvcHNfcGxhbmVbSUdUX05VTV9QTEFORV9QUk9QU107Cj4gIH0gaWd0X3Bs YW5lX3Q7Cj4gIAo+ICBzdHJ1Y3QgaWd0X3BpcGUgewo+IEBAIC0yODEsNiArMzAwLDE4IEBAIHZv aWQgaWd0X3dhaXRfZm9yX3ZibGFuayhpbnQgZHJtX2ZkLCBlbnVtIHBpcGUgcGlwZSk7Cj4gIAo+ ICAjZGVmaW5lIElHVF9GSVhFRChpLGYpCSgoaSkgPDwgMTYgfCAoZikpCj4gIAo+ICsvKioKPiAr ICogaWd0X2F0b21pY19wb3B1bGF0ZV9wbGFuZV9yZXE6Cj4gKyAqIEByZXE6IEEgcG9pbnRlciB0 byBkcm1Nb2RlQXRvbWljUmVxCj4gKyAqIEBwbGFuZTogQSBwb2ludGVyIGlndF9wbGFuZV90Cj4g KyAqIEBwcm9wOiBvbmUgb2YgaWd0X2F0b21pY19wbGFuZV9wcm9wZXJ0aWVzCj4gKyAqIEB2YWx1 ZTogdGhlIHZhbHVlIHRvIGFkZAo+ICsgKi8KPiArI2RlZmluZSBpZ3RfYXRvbWljX3BvcHVsYXRl X3BsYW5lX3JlcShyZXEsIHBsYW5lLCBwcm9wLCB2YWx1ZSkgXAo+ICsJaWd0X2Fzc2VydF9sdCgw LCBkcm1Nb2RlQXRvbWljQWRkUHJvcGVydHkocmVxLCBwbGFuZS0+ZHJtX3BsYW5lLT5wbGFuZV9p ZCxcCj4gKwkJCQkJCSAgcGxhbmUtPmF0b21pY19wcm9wc19wbGFuZVtwcm9wXSwgdmFsdWUpKQo+ ICsKPiArCj4gIHZvaWQgaWd0X2VuYWJsZV9jb25uZWN0b3JzKHZvaWQpOwo+ICB2b2lkIGlndF9y ZXNldF9jb25uZWN0b3JzKHZvaWQpOwo+ICAKPiAtLSAKPiAyLjYuMgo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKTWF0dCBSb3BlcgpH cmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxv cG1lbnQKSW50ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK