From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id EBB51895D7 for ; Fri, 22 Feb 2019 14:51:08 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id c55so1998481edb.0 for ; Fri, 22 Feb 2019 06:51:08 -0800 (PST) Date: Fri, 22 Feb 2019 15:51:04 +0100 From: Daniel Vetter Message-ID: <20190222145104.GE2665@phenom.ffwll.local> References: <20190221212336.20486-1-nicholas.kazlauskas@amd.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190221212336.20486-1-nicholas.kazlauskas@amd.com> Subject: Re: [igt-dev] [PATCH i-g-t] lib/igt_kms: Fix commits for planes with multiple possible CRTCs List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Nicholas Kazlauskas Cc: igt-dev@lists.freedesktop.org List-ID: T24gVGh1LCBGZWIgMjEsIDIwMTkgYXQgMDQ6MjM6MzZQTSAtMDUwMCwgTmljaG9sYXMgS2F6bGF1 c2thcyB3cm90ZToKPiBBbiBpZ3RfcGxhbmVfdCBpcyBkZWZpbmVkIHBlciBpZ3RfcGlwZV90LiBJ dCBpcyB0cmVhdGVkIGFzIGl0cwo+IG93biBpbmRlcGVuZGVudCByZXNvdXJjZSBidXQgRFJNIHBs YW5lcyBjYW4gYmUgZXhwb3NlZCB0byBiZWluZyB1c2VkIG9uCj4gYSBudW1iZXIgb2YgcG9zc2li bGUgQ1JUQ3MgLSBtYWtpbmcgaXQgYSBzaGFyZWQgcmVzb3VyY2UuCj4gCj4gSW4gSUdUIHBsYW5l cyB3aXRoIG11bHRpcGxlIHBvc3NpYmxlIENSVENzIGFyZSBhZGRlZCB0byB0aGUgcGxhbmUgbGlz dAo+IGZvciBlYWNoIHBpcGUgdGhhdCB0aGUgcGxhbmUgc3VwcG9ydHMuIFRoZSBpbnRlcm5hbCBz dGF0ZSByZW1haW5zCj4gaW5kZXBlbmRlbnQgaW4gSUdUIHNvIHdoZW4gdGhlIHNhbWUgcGxhbmUg aXMgbW9kaWZpZWQgZm9yIG11bHRpcGxlCj4gcGlwZXMgaW4gYSBzaW5nbGUgY29tbWl0IHRoZSBs YXN0IHBpcGUgdG8gbW9kaWZ5IGl0IGlzIHRoZSBvbmUgd2hvc2UKPiBzdGF0ZSBnZXRzIGZ1bGx5 IGFwcGxpZWQuCj4gCj4gVGhpcyBzaXR1YXRpb24gaGFwcGVucyBmYWlybHkgb2Z0ZW4gaW4gcHJh Y3RpY2UgLSByZXNldHRpbmcgdGhlIGRpc3BsYXkKPiBhdCB0aGUgc3RhcnQgb2YgdGhlIHRlc3Qg YmVmb3JlIGEgY29tbWl0IHdpbGwgcmVzZXQgdGhlIENSVEMgSUQgYW5kIEZCCj4gSUQgZm9yIGVh Y2ggcGxhbmUuCj4gCj4gRm9yIGFuIGV4YW1wbGUsIGNvbnNpZGVyIHRoZQo+IGlndEBrbXNfcGxh bmVfYWxwaGFfYmxlbmRAcGlwZS1hLWNvbnN0YW50LWFscGhhLW1heCB0ZXN0Lgo+IAo+IFRoaXMg dGVzdCB3aWxsIGZhaWwgZm9yIGFueSBvdmVybGF5IHBsYW5lIGV4cG9zZWQgZm9yIG11bHRpcGxl IENSVENzLgo+IAo+IFRoZSB0ZXN0IHRyaWVzIHRvIHNldCBhIGZyYW1lYnVmZmVyIGZvciBwaXBl IEEgYnV0IGhhcyBhbGwgdGhlIG90aGVyCj4gcGlwZXMgcmVzZXQgdGhlIHBsYW5lIHN0YXRlIGlu IHRoZSBzYW1lIGNvbW1pdC4gSWYgdGhlcmUgYXJlIG11bHRpcGxlCj4gcGlwZXMgb24gdGhlIGhh cmR3YXJlIHRoZW4gdGhlIGxhc3QgcGlwZSB3aWxsIGJlIHRoZSBvbmUgdG8gc2V0IGFsbCB0aGUK PiBwbGFuZSBwcm9wZXJ0aWVzLiBUaGUgZHJpdmVyIHdpbGwgcmVjZWl2ZSBhIGNvbW1pdCB3aXRo IG5vIG92ZXJsYXkKPiBwbGFuZSBlbmFibGVkIHNpbmNlIHRoZSBsYXN0IHBpcGUgc2V0IENSVEMg SUQgYW5kIEZCIElEIHRvIDAsIGRpc2FibGluZwo+IHRoZSBwbGFuZS4gVGhlIHJlZmVyZW5jZSBD UkMgY2FwdHVyZSB3aWxsIGJlIGluY29ycmVjdCBzaW5jZSBub3QgYWxsCj4gdGhlIHBsYW5lcyBo YXZlIGJlZW4gZW5hYmxlZCBhbmQgdGhlIHN1YnNlcXVlbnQgQ1JDIGNhcHR1cmVzIHdpbGwKPiBu b3QgbWF0Y2gsIGZhaWxpbmcgdGhlIHRlc3QuCj4gCj4gVGhlIHNpbXBsZXN0IChidXQgaGFja3kp IGZpeCB0byB0aGlzIHByb2JsZW0gaXMgdG8gb25seSBzZXQgdGhlCj4gcHJvcGVydGllcyBmb3Ig dGhlIHBsYW5lIGZvciB0aGUgcGlwZSB0aGF0IGxhc3QgaGFkIGl0IGJvdW5kLgo+IAo+IFRoaXMg cGF0Y2ggaW50cm9kdWNlcyBhIGdsb2JhbCBwbGFuZSBsaXN0IG9uIGlndF9kaXNwbGF5X3QgdGhh dCBrZWVwcwo+IHRyYWNrIG9mIHRoZSBwaXBlIHRoYXQgcGlwZSB0aGF0IGxhc3QgY2FsbGVkIGln dF9wbGFuZV9zZXRfZmIuIFRoZQo+IHByb3BlcnRpZXMgZm9yIHRoZSBwbGFuZSB3aWxsIG9ubHkg YmUgYXBwbGllZCBmcm9tIHRoYXQgc2luZ2xlIHBpcGUKPiB3aGVuIGNvbW1pdGluZyB0aGUgc3Rh dGUgdG8gRFJNLgo+IAo+IE5vIGJlaGF2aW9yYWwgY2hhbmdlcyBzaG91bGQgYmUgaW50cm9kdWNl ZCBieSB0aGlzIHBhdGNoIGZvciBoYXJkd2FyZQo+IHdob3NlIHBsYW5lcyBhcmUgb25seSBldmVy IGV4cG9zZWQgb25lIENSVEMuCj4gCj4gSXQgd291bGQgbGlrZWx5IGJlIGJlc3QgdG8gZXZlbnR1 YWxseSBtb2RpZnkgdGhlIGlndF9waXBlX3QgcGxhbmUgbGlzdAo+IHRvIGJlIGEgbGlzdCBvZiBw b2ludGVycyB0byBwbGFuZXMgaW5zdGVhZCAoaWd0X3BsYW5lX3QqKikKPiBpbnN0ZWFkIG9mIGJl aW5nIHRoZSBhY3R1YWwgcGxhbmUgb2JqZWN0cywgYnV0IHRoYXQgY2FuIGNvbWUgbGF0ZXIuCj4g Cj4gTWFueSBhcmVhcyBvZiB0aGUgY29kZSBsaWtlIHRvIG1ha2UgdXNlIG9mIHRoZSBiYWNrcG9p bnRlciB0byB0aGUgcGlwZQo+IG9uIHRoZSBwbGFuZSB3aGljaCBtYWtlcyByZWZhY3RvcmluZyB0 aGUgY29kZSBpbiB0aGF0IG1hbm5lciBhIGxpdHRsZQo+IHRyaWNraWVyLgoKVGhhbmtzIGEgbG90 IGZvciB0YWNrbGluZyB0aGlzIGludGVsLWlzbSBpbiBpZ3QsIHdoaWNoIGluZGVlZCBpcyB0b3Rh bGx5Cm5vdCBob3cga21zIHdvcmtzIChvdXRzaWRlIG9mIHJlY2VudCBpOTE1IGh3KS4KCkkgdGhp bmsgeW91ciBwbGFuIHRvIGZpcnN0IGJ1aWxkIHVwIGEgZ2xvYmFsIHBsYW5lIGxpc3Qgd2hpY2gg YWxpYXNlcyB0bwp0aGUgY3VycmVudCBwZXItcGlwZSBwbGFuZXMgYXMgYSBmaXJzdCBzdGVwIGlz IHNvdW5kLgoKVGhlIG5leHQgc3RlcCB3ZSBjYW4gcHJvYmFibHkgZG8gZ3JhZHVhbGx5LCBpLmUu IGFkZCBhIG5ldwppZ3RfcGlwZS0+cGxhbmVfcmVzIG9yIHNvIHdoaWNoIGlzIHRoZSBsaXN0IG9m IHBvaW50ZXJzIGZvciB0aGUgZ2xvYmFsCnBsYW5lX3JlcyBhcnJheS4gQW5kIHRoZW4gc3RlcC1i eS1zdGVwIGZhZGUgb3V0IHVzYWdlIG9mIGlndF9waXBlX3BsYW5lcy4KCk5lZWRzIGEgYml0IG9m IGJvb2sta2VlcGluZyBmb3IgdGhlIHRyYW5zaXRpb24sIGJ1dCBzaG91bGQgYmUgZG9hYmxlLgoK PiAKPiBTaWduZWQtb2ZmLWJ5OiBOaWNob2xhcyBLYXpsYXVza2FzIDxuaWNob2xhcy5rYXpsYXVz a2FzQGFtZC5jb20+Cj4gLS0tCj4gIGxpYi9pZ3Rfa21zLmMgfCA3NiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgbGliL2lndF9rbXMuaCB8IDEw ICsrKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBiL2xpYi9pZ3Rfa21zLmMKPiBp bmRleCAwODBmOTBhZS4uZjEzM2E1Y2QgMTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9rbXMuYwo+ICsr KyBiL2xpYi9pZ3Rfa21zLmMKPiBAQCAtMTkwNSw2ICsxOTA1LDIwIEBAIHZvaWQgaWd0X2Rpc3Bs YXlfcmVxdWlyZShpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBpbnQgZHJtX2ZkKQo+ICAJcGxhbmVf cmVzb3VyY2VzID0gZHJtTW9kZUdldFBsYW5lUmVzb3VyY2VzKGRpc3BsYXktPmRybV9mZCk7Cj4g IAlpZ3RfYXNzZXJ0KHBsYW5lX3Jlc291cmNlcyk7Cj4gIAo+ICsJZGlzcGxheS0+bl9wbGFuZXMg PSBwbGFuZV9yZXNvdXJjZXMtPmNvdW50X3BsYW5lczsKPiArCWRpc3BsYXktPnBsYW5lcyA9IGNh bGxvYyhzaXplb2YoaWd0X3BsYW5lX3Jlc190KSwgZGlzcGxheS0+bl9wbGFuZXMpOwo+ICsJaWd0 X2Fzc2VydF9mKGRpc3BsYXktPnBsYW5lcywgIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9y ICVkIHBsYW5lc1xuIiwgZGlzcGxheS0+bl9wbGFuZXMpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkg PCBwbGFuZV9yZXNvdXJjZXMtPmNvdW50X3BsYW5lczsgKytpKSB7Cj4gKwkJaWd0X3BsYW5lX3Jl c190ICpwbGFuZSA9ICZkaXNwbGF5LT5wbGFuZXNbaV07Cj4gKwkJdWludDMyX3QgaWQgPSBwbGFu ZV9yZXNvdXJjZXMtPnBsYW5lc1tpXTsKPiArCj4gKwkJcGxhbmUtPmRybV9wbGFuZSA9IGRybU1v ZGVHZXRQbGFuZShkaXNwbGF5LT5kcm1fZmQsIGlkKTsKPiArCQlpZ3RfYXNzZXJ0KHBsYW5lLT5k cm1fcGxhbmUpOwo+ICsKPiArCQlwbGFuZS0+dHlwZSA9IGdldF9kcm1fcGxhbmVfdHlwZShkaXNw bGF5LT5kcm1fZmQsIGlkKTsKPiArCX0KPiArCj4gIAlmb3JfZWFjaF9waXBlKGRpc3BsYXksIGkp IHsKPiAgCQlpZ3RfcGlwZV90ICpwaXBlID0gJmRpc3BsYXktPnBpcGVzW2ldOwo+ICAJCWlndF9w bGFuZV90ICpwbGFuZTsKPiBAQCAtMTkyMiwxNyArMTkzNiwxMiBAQCB2b2lkIGlndF9kaXNwbGF5 X3JlcXVpcmUoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IGRybV9mZCkKPiAgCQlpZ3RfZmls bF9waXBlX3Byb3BzKGRpc3BsYXksIHBpcGUsIElHVF9OVU1fQ1JUQ19QUk9QUywgaWd0X2NydGNf cHJvcF9uYW1lcyk7Cj4gIAo+ICAJCS8qIGNvdW50IG51bWJlciBvZiB2YWxpZCBwbGFuZXMgKi8K PiAtCQlmb3IgKGogPSAwOyBqIDwgcGxhbmVfcmVzb3VyY2VzLT5jb3VudF9wbGFuZXM7IGorKykg ewo+IC0JCQlkcm1Nb2RlUGxhbmUgKmRybV9wbGFuZTsKPiAtCj4gLQkJCWRybV9wbGFuZSA9IGRy bU1vZGVHZXRQbGFuZShkaXNwbGF5LT5kcm1fZmQsCj4gLQkJCQkJCSAgICBwbGFuZV9yZXNvdXJj ZXMtPnBsYW5lc1tqXSk7Cj4gKwkJZm9yIChqID0gMDsgaiA8IGRpc3BsYXktPm5fcGxhbmVzOyBq KyspIHsKPiArCQkJZHJtTW9kZVBsYW5lICpkcm1fcGxhbmUgPSBkaXNwbGF5LT5wbGFuZXNbal0u ZHJtX3BsYW5lOwo+ICAJCQlpZ3RfYXNzZXJ0KGRybV9wbGFuZSk7Cj4gIAo+ICAJCQlpZiAoZHJt X3BsYW5lLT5wb3NzaWJsZV9jcnRjcyAmICgxIDw8IGkpKQo+ICAJCQkJbl9wbGFuZXMrKzsKPiAt Cj4gLQkJCWRybU1vZGVGcmVlUGxhbmUoZHJtX3BsYW5lKTsKPiAgCQl9Cj4gIAo+ICAJCWlndF9h c3NlcnRfbHQoMCwgbl9wbGFuZXMpOwo+IEBAIC0xOTQxLDIwICsxOTUwLDE0IEBAIHZvaWQgaWd0 X2Rpc3BsYXlfcmVxdWlyZShpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBpbnQgZHJtX2ZkKQo+ICAJ CWxhc3RfcGxhbmUgPSBuX3BsYW5lcyAtIDE7Cj4gIAo+ICAJCS8qIGFkZCB0aGUgcGxhbmVzIHRo YXQgY2FuIGJlIHVzZWQgd2l0aCB0aGF0IHBpcGUgKi8KPiAtCQlmb3IgKGogPSAwOyBqIDwgcGxh bmVfcmVzb3VyY2VzLT5jb3VudF9wbGFuZXM7IGorKykgewo+IC0JCQlkcm1Nb2RlUGxhbmUgKmRy bV9wbGFuZTsKPiAtCj4gLQkJCWRybV9wbGFuZSA9IGRybU1vZGVHZXRQbGFuZShkaXNwbGF5LT5k cm1fZmQsCj4gLQkJCQkJCSAgICBwbGFuZV9yZXNvdXJjZXMtPnBsYW5lc1tqXSk7Cj4gLQkJCWln dF9hc3NlcnQoZHJtX3BsYW5lKTsKPiArCQlmb3IgKGogPSAwOyBqIDwgZGlzcGxheS0+bl9wbGFu ZXM7IGorKykgewo+ICsJCQlpZ3RfcGxhbmVfcmVzX3QgKnJlcyA9ICZkaXNwbGF5LT5wbGFuZXNb al07Cj4gKwkJCWRybU1vZGVQbGFuZSAqZHJtX3BsYW5lID0gcmVzLT5kcm1fcGxhbmU7Cj4gIAo+ IC0JCQlpZiAoIShkcm1fcGxhbmUtPnBvc3NpYmxlX2NydGNzICYgKDEgPDwgaSkpKSB7Cj4gLQkJ CQlkcm1Nb2RlRnJlZVBsYW5lKGRybV9wbGFuZSk7Cj4gKwkJCWlmICghKGRybV9wbGFuZS0+cG9z c2libGVfY3J0Y3MgJiAoMSA8PCBpKSkpCj4gIAkJCQljb250aW51ZTsKPiAtCQkJfQo+ICAKPiAt CQkJdHlwZSA9IGdldF9kcm1fcGxhbmVfdHlwZShkaXNwbGF5LT5kcm1fZmQsCj4gLQkJCQkJCSAg cGxhbmVfcmVzb3VyY2VzLT5wbGFuZXNbal0pOwo+ICsJCQl0eXBlID0gcmVzLT50eXBlOwo+ICAK PiAgCQkJaWYgKHR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSAmJiBwaXBlLT5wbGFuZV9w cmltYXJ5ID09IC0xKSB7Cj4gIAkJCQlwbGFuZSA9ICZwaXBlLT5wbGFuZXNbMF07Cj4gQEAgLTE5 NzUsNiArMTk3OCwxMCBAQCB2b2lkIGlndF9kaXNwbGF5X3JlcXVpcmUoaWd0X2Rpc3BsYXlfdCAq ZGlzcGxheSwgaW50IGRybV9mZCkKPiAgCQkJcGxhbmUtPnBpcGUgPSBwaXBlOwo+ICAJCQlwbGFu ZS0+ZHJtX3BsYW5lID0gZHJtX3BsYW5lOwo+ICAJCQlwbGFuZS0+dmFsdWVzW0lHVF9QTEFORV9J Tl9GRU5DRV9GRF0gPSB+MFVMTDsKPiArCQkJcGxhbmUtPnJlcyA9IHJlczsKPiArCj4gKwkJCWlm ICghcmVzLT5zdGF0ZSkKPiArCQkJCXJlcy0+c3RhdGUgPSBwbGFuZTsKPiAgCj4gIAkJCWlndF9m aWxsX3BsYW5lX3Byb3BzKGRpc3BsYXksIHBsYW5lLCBJR1RfTlVNX1BMQU5FX1BST1BTLCBpZ3Rf cGxhbmVfcHJvcF9uYW1lcyk7Cj4gIAo+IEBAIC0yMTI3LDE3ICsyMTM0LDYgQEAgaWd0X291dHB1 dF90ICppZ3Rfb3V0cHV0X2Zyb21fY29ubmVjdG9yKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksCj4g IAo+ICBzdGF0aWMgdm9pZCBpZ3RfcGlwZV9maW5pKGlndF9waXBlX3QgKnBpcGUpCj4gIHsKPiAt CWludCBpOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCBwaXBlLT5uX3BsYW5lczsgaSsrKSB7Cj4g LQkJaWd0X3BsYW5lX3QgKnBsYW5lID0gJnBpcGUtPnBsYW5lc1tpXTsKPiAtCj4gLQkJaWYgKHBs YW5lLT5kcm1fcGxhbmUpIHsKPiAtCQkJZHJtTW9kZUZyZWVQbGFuZShwbGFuZS0+ZHJtX3BsYW5l KTsKPiAtCQkJcGxhbmUtPmRybV9wbGFuZSA9IE5VTEw7Cj4gLQkJfQo+IC0JfQo+IC0KPiAgCWZy ZWUocGlwZS0+cGxhbmVzKTsKPiAgCXBpcGUtPnBsYW5lcyA9IE5VTEw7Cj4gIAo+IEBAIC0yMTYz LDYgKzIxNTksMTUgQEAgdm9pZCBpZ3RfZGlzcGxheV9maW5pKGlndF9kaXNwbGF5X3QgKmRpc3Bs YXkpCj4gIHsKPiAgCWludCBpOwo+ICAKPiArCWZvciAoaSA9IDA7IGkgPCBkaXNwbGF5LT5uX3Bs YW5lczsgKytpKSB7Cj4gKwkJaWd0X3BsYW5lX3Jlc190ICpwbGFuZSA9ICZkaXNwbGF5LT5wbGFu ZXNbaV07Cj4gKwo+ICsJCWlmIChwbGFuZS0+ZHJtX3BsYW5lKSB7Cj4gKwkJCWRybU1vZGVGcmVl UGxhbmUocGxhbmUtPmRybV9wbGFuZSk7Cj4gKwkJCXBsYW5lLT5kcm1fcGxhbmUgPSBOVUxMOwo+ ICsJCX0KPiArCX0KPiArCj4gIAlmb3IgKGkgPSAwOyBpIDwgZGlzcGxheS0+bl9waXBlczsgaSsr KQo+ICAJCWlndF9waXBlX2ZpbmkoJmRpc3BsYXktPnBpcGVzW2ldKTsKPiAgCj4gQEAgLTIxNzIs NiArMjE3Nyw4IEBAIHZvaWQgaWd0X2Rpc3BsYXlfZmluaShpZ3RfZGlzcGxheV90ICpkaXNwbGF5 KQo+ICAJZGlzcGxheS0+b3V0cHV0cyA9IE5VTEw7Cj4gIAlmcmVlKGRpc3BsYXktPnBpcGVzKTsK PiAgCWRpc3BsYXktPnBpcGVzID0gTlVMTDsKPiArCWZyZWUoZGlzcGxheS0+cGxhbmVzKTsKPiAr CWRpc3BsYXktPnBsYW5lcyA9IE5VTEw7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGlndF9kaXNw bGF5X3JlZnJlc2goaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSkKPiBAQCAtMjc4OSw2ICsyNzk2LDEw IEBAIHN0YXRpYyBpbnQgaWd0X3BpcGVfY29tbWl0KGlndF9waXBlX3QgKnBpcGUsCj4gIAlmb3Ig KGkgPSAwOyBpIDwgcGlwZS0+bl9wbGFuZXM7IGkrKykgewo+ICAJCWlndF9wbGFuZV90ICpwbGFu ZSA9ICZwaXBlLT5wbGFuZXNbaV07Cj4gIAo+ICsJCS8qIHNraXAgcGxhbmVzIHRoYXQgYXJlIGhh bmRsZWQgYnkgYW5vdGhlciBwaXBlICovCj4gKwkJaWYgKHBsYW5lLT5yZXMtPnN0YXRlICE9IHBs YW5lKQo+ICsJCQljb250aW51ZTsKPiArCj4gIAkJcmV0ID0gaWd0X3BsYW5lX2NvbW1pdChwbGFu ZSwgcGlwZSwgcywgZmFpbF9vbl9lcnJvcik7Cj4gIAkJQ0hFQ0tfUkVUVVJOKHJldCwgZmFpbF9v bl9lcnJvcik7Cj4gIAl9Cj4gQEAgLTMxNzcsNiArMzE4OCwxMCBAQCBzdGF0aWMgaW50IGlndF9h dG9taWNfY29tbWl0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIHVpbnQzMl90IGZsYWdzLCB2b2lk ICp1c2VyXwo+ICAJCQlpZ3RfYXRvbWljX3ByZXBhcmVfY3J0Y19jb21taXQocGlwZV9vYmosIHJl cSk7Cj4gIAo+ICAJCWZvcl9lYWNoX3BsYW5lX29uX3BpcGUoZGlzcGxheSwgcGlwZSwgcGxhbmUp IHsKPiArCQkJLyogc2tpcCBwbGFuZXMgdGhhdCBhcmUgaGFuZGxlZCBieSBhbm90aGVyIHBpcGUg Ki8KPiArCQkJaWYgKHBsYW5lLT5yZXMtPnN0YXRlICE9IHBsYW5lKQo+ICsJCQkJY29udGludWU7 Cj4gKwo+ICAJCQlpZiAocGxhbmUtPmNoYW5nZWQpCj4gIAkJCQlpZ3RfYXRvbWljX3ByZXBhcmVf cGxhbmVfY29tbWl0KHBsYW5lLCBwaXBlX29iaiwgcmVxKTsKPiAgCQl9Cj4gQEAgLTM3MDksNiAr MzcyNCw5IEBAIHZvaWQgaWd0X3BsYW5lX3NldF9mYihpZ3RfcGxhbmVfdCAqcGxhbmUsIHN0cnVj dCBpZ3RfZmIgKmZiKQo+ICAJCWlmIChpZ3RfcGxhbmVfaGFzX3Byb3AocGxhbmUsIElHVF9QTEFO RV9DT0xPUl9SQU5HRSkpCj4gIAkJCWlndF9wbGFuZV9zZXRfcHJvcF9lbnVtKHBsYW5lLCBJR1Rf UExBTkVfQ09MT1JfUkFOR0UsCj4gIAkJCQlpZ3RfY29sb3JfcmFuZ2VfdG9fc3RyKGZiLT5jb2xv cl9yYW5nZSkpOwo+ICsKPiArCQkvKiBoYWNrIHRvIHByaW9yaXRpemUgcGxhbmUgb24gY3J0YyBp dCB3YXMgbGFzdCBib3VuZCB0byAqLwo+ICsJCXBsYW5lLT5yZXMtPnN0YXRlID0gcGxhbmU7CgpI bSwgSSdkIGNyZWF0YSBhIG5ldyBpZ3RfcGxhbmVfc2V0X3BpcGUgYW5kIHB1dCB0aGlzIGluIHRo ZXJlLiBUaGF0IHdvdWxkCmdpdmUgeW91IGEgbmljZSBwbGFjZSB0byB1cGRhdGUgYWxsIHRoZSBv dGhlciB0cmFuc2l0aW9uIHBvaW50ZXJzIHdlIG1pZ2h0CmV2ZW50dWFsbHkgbmVlZC4gUGx1cyB3 b3VsZCBhbGxvdyB1cyB0byBncmFkdWFsbHkgc3dpdGNoIHRlc3RzIG92ZXIgdG8gdGhlCm5ldyB3 b3JsZCwgYnV0IG1heWJlIGJldHRlciB0byBrZWVwIHRoYXQgZm9yIHRoZSBuZXh0IHN0ZXAuCgo+ ICAJfSBlbHNlIHsKPiAgCQlpZ3RfcGxhbmVfc2V0X3NpemUocGxhbmUsIDAsIDApOwo+ICAKPiBk aWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9pZ3Rfa21zLmgKPiBpbmRleCA2NzlkNGU4 NC4uMzJkODQwY2UgMTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9rbXMuaAo+ICsrKyBiL2xpYi9pZ3Rf a21zLmgKPiBAQCAtMjg1LDYgKzI4NSw3IEBAIGV4dGVybiBjb25zdCBjaGFyICogY29uc3QgaWd0 X3BsYW5lX3Byb3BfbmFtZXNbXTsKPiAgCj4gIHR5cGVkZWYgc3RydWN0IGlndF9kaXNwbGF5IGln dF9kaXNwbGF5X3Q7Cj4gIHR5cGVkZWYgc3RydWN0IGlndF9waXBlIGlndF9waXBlX3Q7Cj4gK3R5 cGVkZWYgc3RydWN0IGlndF9wbGFuZV9yZXMgaWd0X3BsYW5lX3Jlc190Owo+ICB0eXBlZGVmIHVp bnQzMl90IGlndF9maXhlZF90OwkJCS8qIDE2LjE2IGZpeGVkIHBvaW50ICovCj4gIAo+ICB0eXBl ZGVmIGVudW0gewo+IEBAIC0zMDMsNiArMzA0LDcgQEAgdHlwZWRlZiBlbnVtIHsKPiAgdHlwZWRl ZiBzdHJ1Y3Qgewo+ICAJLyo8IHByaXZhdGUgPiovCj4gIAlpZ3RfcGlwZV90ICpwaXBlOwo+ICsJ aWd0X3BsYW5lX3Jlc190ICpyZXM7Cj4gIAlpbnQgaW5kZXg7Cj4gIAkvKiBjYXBhYmlsaXRpZXMg Ki8KPiAgCWludCB0eXBlOwo+IEBAIC0zMzIsNiArMzM0LDEyIEBAIHR5cGVkZWYgc3RydWN0IHsK PiAgCWludCBmb3JtYXRfbW9kX2NvdW50Owo+ICB9IGlndF9wbGFuZV90Owo+ICAKPiArdHlwZWRl ZiBzdHJ1Y3QgaWd0X3BsYW5lX3JlcyB7Cj4gKwlpZ3RfcGxhbmVfdCAqc3RhdGU7Cj4gKwlkcm1N b2RlUGxhbmUgKmRybV9wbGFuZTsKPiArCWludCB0eXBlOwo+ICt9IGlndF9wbGFuZV9yZXNfdDsK CldoeSBub3QganVzdCByZXVzZSBpZ3RfcGxhbmVfdCBmb3IgdGhpcz8gVGhpcyBtZWFucyBzb21l IGR1cGxpY2F0aW9uIGFuZApzeW5jaW5nICh3aGljaCB5b3UgY291bGQgZG8gaW4gdGhlIGlndF9w bGFuZV9zZXRfcGlwZSBmb3IgdGhlIHRyYW5zaXRpb24pLApidXQgSSB0aGluayBjbGVhbmVyIHBh dGggZm9yd2FyZC4gQW5kIGVhc2llciB0byB0cmFuc2l0aW9uIHRlc3RzIEkgdGhpbmsuCi1EYW5p ZWwKCj4gKwo+ICBzdHJ1Y3QgaWd0X3BpcGUgewo+ICAJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheTsK PiAgCWVudW0gcGlwZSBwaXBlOwo+IEBAIC0zNzIsOCArMzgwLDEwIEBAIHN0cnVjdCBpZ3RfZGlz cGxheSB7Cj4gIAlpbnQgZHJtX2ZkOwo+ICAJaW50IGxvZ19zaGlmdDsKPiAgCWludCBuX3BpcGVz Owo+ICsJaW50IG5fcGxhbmVzOwo+ICAJaW50IG5fb3V0cHV0czsKPiAgCWlndF9vdXRwdXRfdCAq b3V0cHV0czsKPiArCWlndF9wbGFuZV9yZXNfdCAqcGxhbmVzOwo+ICAJaWd0X3BpcGVfdCAqcGlw ZXM7Cj4gIAlib29sIGhhc19jdXJzb3JfcGxhbmU7Cj4gIAlib29sIGlzX2F0b21pYzsKPiAtLSAK PiAyLjE3LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+IGlndC1kZXYgbWFpbGluZyBsaXN0Cj4gaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1k ZXYKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXY=