From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 3/3] drm/i915: Don't assume primary & cursor are always on for wm calculation (v3) Date: Mon, 9 Mar 2015 10:48:08 -0700 Message-ID: <20150309174808.GE27526@intel.com> References: <1425921565-10828-1-git-send-email-matthew.d.roper@intel.com> <1425921565-10828-4-git-send-email-matthew.d.roper@intel.com> <20150309174400.GA11371@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 20E1389F03 for ; Mon, 9 Mar 2015 10:51:56 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150309174400.GA11371@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXIgMDksIDIwMTUgYXQgMDc6NDQ6MDBQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgTWFyIDA5LCAyMDE1IGF0IDEwOjE5OjI1QU0gLTA3MDAsIE1hdHQg Um9wZXIgd3JvdGU6Cj4gPiBDdXJyZW50IElMSy1zdHlsZSB3YXRlcm1hcmsgY29kZSBhc3N1bWVz IHRoZSBwcmltYXJ5IHBsYW5lIGFuZCBjdXJzb3IKPiA+IHBsYW5lIGFyZSBhbHdheXMgZW5hYmxl ZC4gIFRoaXMgYXNzdW1wdGlvbiwgYWxvbmcgd2l0aCB0aGUgY29tYmluYXRpb24KPiA+IG9mIHR3 byBpbmRlcGVuZGVudCBjb21taXRzIHRoYXQgZ290IG1lcmdlZCBhdCB0aGUgc2FtZSB0aW1lLCBy ZXN1bHRzIGluCj4gPiBhIE5VTEwgZGVyZWZlcmVuY2UuICBUaGUgb2ZmZW5kaW5nIGNvbW1pdHMg YXJlOgo+ID4gCj4gPiAgICAgICAgIGNvbW1pdCBmZDJkNjEzNDFiZjM5ZDEwNTQyNTZjMDdkNmVk ZGQ2MjRlYmM0MjQxCj4gPiAgICAgICAgIEF1dGhvcjogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJv cGVyQGludGVsLmNvbT4KPiA+ICAgICAgICAgRGF0ZTogICBGcmkgRmViIDI3IDEwOjEyOjAxIDIw MTUgLTA4MDAKPiA+IAo+ID4gICAgICAgICAgICAgZHJtL2k5MTU6IFVzZSBwbGFuZS0+c3RhdGUt PmZiIGluIHdhdGVybWFyayBjb2RlICh2MikKPiA+IAo+ID4gYW5kCj4gPiAKPiA+ICAgICAgICAg Y29tbWl0IDBmZGE2NTY4MGU5MjU0NWNhZWE1YmU3ODA1YTdmMGE2MTdmYjZjMjAKPiA+ICAgICAg ICAgQXV0aG9yOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+ID4g ICAgICAgICBEYXRlOiAgIEZyaSBGZWIgMjcgMTU6MTI6MzUgMjAxNSArMDAwMAo+ID4gCj4gPiAg ICAgICAgICAgICBkcm0vaTkxNS9za2w6IFVwZGF0ZSB3YXRlcm1hcmtzIGZvciBZIHRpbGluZwo+ ID4gCj4gPiBUaGUgZmlyc3QgY29tbWl0IGNhdXNlcyB1cyB0byB1c2UgdGhlIEZCIGZyb20gcGxh bmUtPnN0YXRlLT5mYiByYXRoZXIKPiA+IHRoYW4gdGhlIGxlZ2FjeSBwbGFuZS0+ZmIsIHdoaWNo IGlzIHVwZGF0ZWQgYSBiaXQgbGF0ZXIgaW4gdGhlIHByb2Nlc3MuCj4gPiAKPiA+IFRoZSBzZWNv bmQgY29tbWl0IGluY2x1ZGVzIGEgY2hhbmdlIHRoYXQgbm93IHRyaWdnZXJzIHdhdGVybWFyawo+ ID4gcmVwcm9ncmFtbWluZyBvbiBwcmltYXJ5IHBsYW5lIGVuYWJsZS9kaXNhYmxlIHdoZXJlIHdl IGRpZG4ndCBoYXZlIG9uZQo+ID4gYmVmb3JlICh3aGljaCB3YXNuJ3QgcmVhbGx5IGNvcnJlY3Qs IGJ1dCB3ZSBoYWQgYmVlbiBnZXR0aW5nIGx1Y2t5Cj4gPiBiZWNhdXNlIHdlIGFsd2F5cyBjYWxj dWxhdGVkIGFzIGlmIHRoZSBwcmltYXJ5IHBsYW5lIHdhcyBvbikuCj4gPiAKPiA+IFRvZ2V0aGVy LCB0aGVzZSB0d28gY29tbWl0cyBjYXVzZSB0aGUgd2F0ZXJtYXJrIGNhbGN1bGF0aW9uIHRvCj4g PiAocHJvcGVybHkpIHNlZSBwbGFuZS0+c3RhdGUtPmZiID0gTlVMTCB3aGVuIHdlJ3JlIGluIHRo ZSBwcm9jZXNzIG9mCj4gPiBkaXNhYmxpbmcgdGhlIHByaW1hcnkgcGxhbmUuICBIb3dldmVyIHRo ZSBleGlzdGluZyB3YXRlcm1hcmsgY29kZQo+ID4gYXNzdW1lcyB0aGVyZSdzIGFsd2F5cyBhIHBy aW1hcnkgZmIgYW5kIHRyaWVzIHRvIGRlcmVmZXJlbmNlIGl0IHRvIGZpbmQKPiA+IG91dCBwaXhl bCBmb3JtYXQgLyBicHAgaW5mb3JtYXRpb24uCj4gPiAKPiA+IFRoZSBmaXggaXMgdG8gbWFrZSBJ TEstc3R5bGUgd2F0ZXJtYXJrIGNhbGN1bGF0aW9uIGFjdHVhbGx5IGNoZWNrIHRoZQo+ID4gdHJ1 ZSBzdGF0dXMgb2YgcHJpbWFyeSAmIGN1cnNvciBwbGFuZXMgYW5kIGFkanVzdCBvdXIgd2F0ZXJt YXJrIGxvZ2ljCj4gPiBhY2NvcmRpbmdseS4KPiA+IAo+ID4gdjI6IFVwZGF0ZSB1bmNoZWNrZWQg dXNlcyBvZiBzdGF0ZS0+ZmIgZm9yIG90aGVyIHBsYXRmb3JtcyAocG52LCBza2wsCj4gPiAgICAg ZXRjLikuICBOb3RlIHRoYXQgdGhpcyBpcyBqdXN0IGEgdGVtcG9yYXJ5IGZpeC4gIFVsdGltYXRl bHkgdGhlCj4gPiAgICAgdXNlZnVsIGluZm9ybWF0aW9uIGlzIGdvaW5nIHRvIGJlIGNvbXB1dGVk IGF0IGNoZWNrIHRpbWUgYW5kIHN0b3JlZAo+ID4gICAgIHJpZ2h0IGluIHRoZSBzdGF0ZSBzdHJ1 Y3R1cmVzIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBmaWd1cmUgdGhpcwo+ID4gICAgIGFsbCBv dXQgd2hpbGUgd2UncmUgc3VwcG9zZWQgdG8gYmUgcHJvZ3JhbW1pbmcgdGhlIHdhdGVybWFya3Mu Cj4gPiAgICAgKGNhdWdodCBieSBUdnJ0a28pCj4gPiAKPiA+IHYzOiBGaXggYSBjb3VwbGUgY29w eS9wYXN0ZSBtaXN0YWtlcyBpbiBTS0wgY29kZS4gKFR2cnRrbykKPiA+IAo+ID4gQ2M6IFR2cnRr byBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gPiBSZXBvcnRlZC1ieTogTWlj aGFlbCBMZXVjaHRlbmJ1cmcgPG1pY2hhZWxAc2xhc2hob21lLm9yZz4KPiA+IEJ1Z3ppbGxhOiBo dHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD04OTM4OAo+ID4gU2ln bmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiA+IC0t LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCAxMTMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA4MiBpbnNl cnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j Cj4gPiBpbmRleCBhMDZhMmM3Li4yMDdjOTczIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwo+ID4gQEAgLTYwOCwxMiArNjA4LDE3IEBAIHN0YXRpYyB2b2lkIHBpbmV2aWV3X3VwZGF0 ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ID4gIAljcnRjID0gc2luZ2xlX2Vu YWJsZWRfY3J0YyhkZXYpOwo+ID4gIAlpZiAoY3J0Yykgewo+ID4gIAkJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7Cj4gPiAtCQlpbnQgcGl4ZWxfc2l6ZSA9IGNy dGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ID4gKwkJaW50IHBp eGVsX3NpemU7Cj4gPiAgCQlpbnQgY2xvY2s7Cj4gPiAgCj4gPiAgCQlhZGp1c3RlZF9tb2RlID0g JnRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4gIAkJ Y2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwo+ID4gIAo+ID4gKwkJaWYgKGNydGMt PnByaW1hcnktPnN0YXRlLT5mYikKPiA+ICsJCQlwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+ c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gPiArCQllbHNlCj4gPiArCQkJcGl4ZWxf c2l6ZSA9IDQ7Cj4gPiArCj4gPiAgCQkvKiBEaXNwbGF5IFNSICovCj4gPiAgCQl3bSA9IGludGVs X2NhbGN1bGF0ZV93bShjbG9jaywgJnBpbmV2aWV3X2Rpc3BsYXlfd20sCj4gPiAgCQkJCQlwaW5l dmlld19kaXNwbGF5X3dtLmZpZm9fc2l6ZSwKPiA+IEBAIC02ODQsNyArNjg5LDExIEBAIHN0YXRp YyBib29sIGc0eF9jb21wdXRlX3dtMChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAljbG9j ayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7Cj4gPiAgCWh0b3RhbCA9IGFkanVzdGVkX21v ZGUtPmNydGNfaHRvdGFsOwo+ID4gIAloZGlzcGxheSA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNv bmZpZy0+cGlwZV9zcmNfdzsKPiA+IC0JcGl4ZWxfc2l6ZSA9IGNydGMtPnByaW1hcnktPnN0YXRl LT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ID4gKwo+ID4gKwlpZiAoY3J0Yy0+cHJpbWFyeS0+ c3RhdGUtPmZiKQo+ID4gKwkJcGl4ZWxfc2l6ZSA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+ Yml0c19wZXJfcGl4ZWwgLyA4Owo+ID4gKwllbHNlCj4gPiArCQlwaXhlbF9zaXplID0gNDsKPiA+ ICAKPiA+ICAJLyogVXNlIHRoZSBzbWFsbCBidWZmZXIgbWV0aG9kIHRvIGNhbGN1bGF0ZSBwbGFu ZSB3YXRlcm1hcmsgKi8KPiA+ICAJZW50cmllcyA9ICgoY2xvY2sgKiBwaXhlbF9zaXplIC8gMTAw MCkgKiBkaXNwbGF5X2xhdGVuY3lfbnMpIC8gMTAwMDsKPiA+IEBAIC03NzEsNyArNzgwLDExIEBA IHN0YXRpYyBib29sIGc0eF9jb21wdXRlX3Nyd20oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ ICAJY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwo+ID4gIAlodG90YWwgPSBhZGp1 c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKPiA+ICAJaGRpc3BsYXkgPSB0b19pbnRlbF9jcnRjKGNy dGMpLT5jb25maWctPnBpcGVfc3JjX3c7Cj4gPiAtCXBpeGVsX3NpemUgPSBjcnRjLT5wcmltYXJ5 LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiA+ICsKPiA+ICsJaWYgKGNydGMtPnBy aW1hcnktPnN0YXRlLT5mYikKPiA+ICsJCXBpeGVsX3NpemUgPSBjcnRjLT5wcmltYXJ5LT5zdGF0 ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiA+ICsJZWxzZQo+ID4gKwkJcGl4ZWxfc2l6ZSA9 IDQ7Cj4gPiAgCj4gPiAgCWxpbmVfdGltZV91cyA9IG1heChodG90YWwgKiAxMDAwIC8gY2xvY2ss IDEpOwo+ID4gIAlsaW5lX2NvdW50ID0gKGxhdGVuY3lfbnMgLyBsaW5lX3RpbWVfdXMgKyAxMDAw KSAvIDEwMDA7Cj4gPiBAQCAtMTExOCwxMCArMTEzMSwxNSBAQCBzdGF0aWMgdm9pZCBpOTY1X3Vw ZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ID4gIAkJaW50IGNsb2NrID0g YWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jazsKPiA+ICAJCWludCBodG90YWwgPSBhZGp1c3RlZF9t b2RlLT5jcnRjX2h0b3RhbDsKPiA+ICAJCWludCBoZGlzcGxheSA9IHRvX2ludGVsX2NydGMoY3J0 YyktPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiA+IC0JCWludCBwaXhlbF9zaXplID0gY3J0Yy0+cHJp bWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gPiArCQlpbnQgcGl4ZWxfc2l6 ZTsKPiA+ICAJCXVuc2lnbmVkIGxvbmcgbGluZV90aW1lX3VzOwo+ID4gIAkJaW50IGVudHJpZXM7 Cj4gPiAgCj4gPiArCQlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ID4gKwkJCXBpeGVs X3NpemUgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiA+ ICsJCWVsc2UKPiA+ICsJCQlwaXhlbF9zaXplID0gNDsKPiA+ICsKPiA+ICAJCWxpbmVfdGltZV91 cyA9IG1heChodG90YWwgKiAxMDAwIC8gY2xvY2ssIDEpOwo+ID4gIAo+ID4gIAkJLyogVXNlIG5z L3VzIHRoZW4gZGl2aWRlIHRvIHByZXNlcnZlIHByZWNpc2lvbiAqLwo+ID4gQEAgLTExOTUsNyAr MTIxMywxMyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVu dXNlZF9jcnRjKQo+ID4gIAljcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BsYW5lKGRldiwgMCk7 Cj4gPiAgCWlmIChpbnRlbF9jcnRjX2FjdGl2ZShjcnRjKSkgewo+ID4gIAkJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7Cj4gPiAtCQlpbnQgY3BwID0gY3J0Yy0+ cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gPiArCQlpbnQgY3BwOwo+ ID4gKwo+ID4gKwkJaWYgKGNydGMtPnByaW1hcnktPnN0YXRlLT5mYikKPiA+ICsJCQljcHAgPSBj cnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiA+ICsJCWVsc2UK PiA+ICsJCQljcHAgPSA0Owo+ID4gKwo+ID4gIAkJaWYgKElTX0dFTjIoZGV2KSkKPiA+ICAJCQlj cHAgPSA0Owo+ID4gIAo+ID4gQEAgLTEyMTcsNyArMTI0MSwxMyBAQCBzdGF0aWMgdm9pZCBpOXh4 X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ID4gIAljcnRjID0gaW50 ZWxfZ2V0X2NydGNfZm9yX3BsYW5lKGRldiwgMSk7Cj4gPiAgCWlmIChpbnRlbF9jcnRjX2FjdGl2 ZShjcnRjKSkgewo+ID4gIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGU7Cj4gPiAtCQlpbnQgY3BwID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Bl cl9waXhlbCAvIDg7Cj4gPiArCQlpbnQgY3BwOwo+ID4gKwo+ID4gKwkJaWYgKGNydGMtPnByaW1h cnktPnN0YXRlLT5mYikKPiA+ICsJCQljcHAgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJp dHNfcGVyX3BpeGVsIC8gODsKPiA+ICsJCWVsc2UKPiA+ICsJCQljcHAgPSA0Owo+ID4gKwo+ID4g IAkJaWYgKElTX0dFTjIoZGV2KSkKPiA+ICAJCQljcHAgPSA0Owo+ID4gIAo+ID4gQEAgLTEyNDMs NyArMTI3Myw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAq dW51c2VkX2NydGMpCj4gPiAgCQlvYmogPSBpbnRlbF9mYl9vYmooZW5hYmxlZC0+cHJpbWFyeS0+ c3RhdGUtPmZiKTsKPiA+ICAKPiA+ICAJCS8qIHNlbGYtcmVmcmVzaCBzZWVtcyBidXN0ZWQgd2l0 aCB1bnRpbGVkICovCj4gPiAtCQlpZiAob2JqLT50aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19O T05FKQo+ID4gKwkJaWYgKCFvYmogfHwgb2JqLT50aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19O T05FKQo+ID4gIAkJCWVuYWJsZWQgPSBOVUxMOwo+ID4gIAl9Cj4gPiAgCj4gPiBAQCAtMTI2NCwx MCArMTI5NCwxNSBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMg KnVudXNlZF9jcnRjKQo+ID4gIAkJaW50IGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j azsKPiA+ICAJCWludCBodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKPiA+ICAJ CWludCBoZGlzcGxheSA9IHRvX2ludGVsX2NydGMoZW5hYmxlZCktPmNvbmZpZy0+cGlwZV9zcmNf dzsKPiA+IC0JCWludCBwaXhlbF9zaXplID0gZW5hYmxlZC0+cHJpbWFyeS0+c3RhdGUtPmZiLT5i aXRzX3Blcl9waXhlbCAvIDg7Cj4gPiArCQlpbnQgcGl4ZWxfc2l6ZTsKPiA+ICAJCXVuc2lnbmVk IGxvbmcgbGluZV90aW1lX3VzOwo+ID4gIAkJaW50IGVudHJpZXM7Cj4gPiAgCj4gPiArCQlpZiAo ZW5hYmxlZC0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ID4gKwkJCXBpeGVsX3NpemUgPSBlbmFibGVk LT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiA+ICsJCWVsc2UKPiA+ ICsJCQlwaXhlbF9zaXplID0gNDsKPiA+ICsKPiA+ICAJCWxpbmVfdGltZV91cyA9IG1heChodG90 YWwgKiAxMDAwIC8gY2xvY2ssIDEpOwo+ID4gIAo+ID4gIAkJLyogVXNlIG5zL3VzIHRoZW4gZGl2 aWRlIHRvIHByZXNlcnZlIHByZWNpc2lvbiAqLwo+IAo+IFdpdGggdGhlIGNoYW5nZSB0byBpbnRl bF9jcnRjX2FjdGl2ZSgpIHRvIGxvb2sgYXQgc3RhdGUtPmZiIEkgdGhpbmsgeW91Cj4gY291bGQg ZHJvcCBhbGwgb2YgdGhlIGNoYW5nZXMgYWJvdmUsIGFuZCBqdXN0IGtlZXAgdGhlIGNoYW5nZXMg YmVsb3cuCgpBcmUgeW91IHN1cmU/ICBJZiBpbnRlbF9jcnRjLT5hY3RpdmUgaXMgdHJ1ZSwgYnV0 IHRoZSBwcmltYXJ5IHBsYW5lIGlzCmRpc2FibGVkIChwbGFuZS0+c3RhdGUtPmZiID09IE5VTEwp LCB0aGVuIEkgdGhpbmsgd2UncmUgc3RpbGwgZ29pbmcgdG8Kd2luZCB1cCB0cnlpbmcgdG8gZGVy ZWZlcmVuY2UgcGxhbmUtPnN0YXRlLT5mYiB0byBnZXQgYml0c19wZXJfcGl4ZWwuCgpJbiBteSBv dGhlciBicmFuY2ggSSBkbyBoYXZlIGEgcGF0Y2ggdGhhdCBqdXN0IG1vdmVzIGFsbCB0aGF0IHdt X3BhcmFtCmNhbGN1bGF0aW9uIG91dCBvZiB0aGUgd2F0ZXJtYXJrIGNvZGUgaGVyZSBhbmQgc3Rp Y2tzIGl0IGluIHRoZQpjaGVja19wbGFuZSBjb2RlLCBzbyB0aGF0IHdlIGFsd2F5cyBoYXZlIHVw LXRvLWRhdGUgZW5hYmxlZC9icHAvZXRjCnZhbHVlcyBjb2xsZWN0ZWQgZm9yIHRoZSBwbGFuZSBz dGF0ZS4gIElmIEkgY2FuIGV4dHJhY3QgdGhhdCBmcm9tIG15Cm90aGVyIGJyYW5jaCBjbGVhbmx5 LCB0aGF0IG1pZ2h0IGJlIGEgc2xpZ2h0bHkgY2xlYW5lciBzb2x1dGlvbiB0aGFuCmp1c3QgYWRk aW5nIGFsbCB0aGUgZmIgdGVzdHMgaGVyZS4KCgpNYXR0Cgo+IAo+ID4gQEAgLTE5NjIsMTMgKzE5 OTcsMjUgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fcGFyYW1ldGVycyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gPiAgCXAtPmFjdGl2ZSA9IHRydWU7Cj4gPiAgCXAtPnBpcGVfaHRvdGFs ID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7Cj4g PiAgCXAtPnBpeGVsX3JhdGUgPSBpbGtfcGlwZV9waXhlbF9yYXRlKGRldiwgY3J0Yyk7Cj4gPiAt CXAtPnByaS5ieXRlc19wZXJfcGl4ZWwgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNf cGVyX3BpeGVsIC8gODsKPiA+IC0JcC0+Y3VyLmJ5dGVzX3Blcl9waXhlbCA9IDQ7Cj4gPiArCj4g PiArCWlmIChjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmIpIHsKPiA+ICsJCXAtPnByaS5lbmFibGVk ID0gdHJ1ZTsKPiA+ICsJCXAtPnByaS5ieXRlc19wZXJfcGl4ZWwgPQo+ID4gKwkJCWNydGMtPnBy aW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ID4gKwl9IGVsc2Ugewo+ID4g KwkJcC0+cHJpLmVuYWJsZWQgPSBmYWxzZTsKPiA+ICsJCXAtPnByaS5ieXRlc19wZXJfcGl4ZWwg PSAwOwo+ID4gKwl9Cj4gPiArCj4gPiArCWlmIChjcnRjLT5jdXJzb3ItPnN0YXRlLT5mYikgewo+ ID4gKwkJcC0+Y3VyLmVuYWJsZWQgPSB0cnVlOwo+ID4gKwkJcC0+Y3VyLmJ5dGVzX3Blcl9waXhl bCA9IDQ7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlwLT5jdXIuZW5hYmxlZCA9IGZhbHNlOwo+ID4g KwkJcC0+Y3VyLmJ5dGVzX3Blcl9waXhlbCA9IDA7Cj4gPiArCX0KPiA+ICAJcC0+cHJpLmhvcml6 X3BpeGVscyA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiA+ICAJcC0+Y3VyLmhv cml6X3BpeGVscyA9IGludGVsX2NydGMtPmJhc2UuY3Vyc29yLT5zdGF0ZS0+Y3J0Y193Owo+ID4g LQkvKiBUT0RPOiBmb3Igbm93LCBhc3N1bWUgcHJpbWFyeSBhbmQgY3Vyc29yIHBsYW5lcyBhcmUg YWx3YXlzIGVuYWJsZWQuICovCj4gPiAtCXAtPnByaS5lbmFibGVkID0gdHJ1ZTsKPiA+IC0JcC0+ Y3VyLmVuYWJsZWQgPSB0cnVlOwo+ID4gIAo+ID4gIAlkcm1fZm9yX2VhY2hfbGVnYWN5X3BsYW5l KHBsYW5lLCAmZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0KSB7Cj4gPiAgCQlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ID4gQEAgLTI3 MzQsMjcgKzI3ODEsMzEgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfd21fcGlwZV9wYXJhbWV0 ZXJzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJCXAtPnBpcGVfaHRvdGFsID0gaW50ZWxf Y3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7Cj4gPiAgCQlwLT5w aXhlbF9yYXRlID0gc2tsX3BpcGVfcGl4ZWxfcmF0ZShpbnRlbF9jcnRjLT5jb25maWcpOwo+ID4g IAo+ID4gLQkJLyoKPiA+IC0JCSAqIEZvciBub3csIGFzc3VtZSBwcmltYXJ5IGFuZCBjdXJzb3Ig cGxhbmVzIGFyZSBhbHdheXMgZW5hYmxlZC4KPiA+IC0JCSAqLwo+ID4gLQkJcC0+cGxhbmVbMF0u ZW5hYmxlZCA9IHRydWU7Cj4gPiAtCQlwLT5wbGFuZVswXS5ieXRlc19wZXJfcGl4ZWwgPQo+ID4g LQkJCWNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ID4gLQkJ cC0+cGxhbmVbMF0uaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193 Owo+ID4gLQkJcC0+cGxhbmVbMF0udmVydF9waXhlbHMgPSBpbnRlbF9jcnRjLT5jb25maWctPnBp cGVfc3JjX2g7Cj4gPiAtCQlwLT5wbGFuZVswXS50aWxpbmcgPSBEUk1fRk9STUFUX01PRF9OT05F Owo+ID4gIAkJZmIgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmI7Cj4gPiAtCQkvKgo+ID4gLQkJ ICogRnJhbWVidWZmZXIgY2FuIGJlIE5VTEwgb24gcGxhbmUgZGlzYWJsZSwgYnV0IGl0IGRvZXMg bm90Cj4gPiAtCQkgKiBtYXR0ZXIgZm9yIHdhdGVybWFya3MgaWYgd2UgYXNzdW1lIG5vIHRpbGlu ZyBpbiB0aGF0IGNhc2UuCj4gPiAtCQkgKi8KPiA+IC0JCWlmIChmYikKPiA+ICsJCWlmIChmYikg ewo+ID4gKwkJCXAtPnBsYW5lWzBdLmVuYWJsZWQgPSB0cnVlOwo+ID4gKwkJCXAtPnBsYW5lWzBd LmJ5dGVzX3Blcl9waXhlbCA9IGZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gPiAgCQkJcC0+cGxh bmVbMF0udGlsaW5nID0gZmItPm1vZGlmaWVyWzBdOwo+ID4gKwkJfSBlbHNlIHsKPiA+ICsJCQlw LT5wbGFuZVswXS5lbmFibGVkID0gZmFsc2U7Cj4gPiArCQkJcC0+cGxhbmVbMF0uYnl0ZXNfcGVy X3BpeGVsID0gMDsKPiA+ICsJCQlwLT5wbGFuZVswXS50aWxpbmcgPSBEUk1fRk9STUFUX01PRF9O T05FOwo+ID4gKwkJfQo+ID4gKwkJcC0+cGxhbmVbMF0uaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0 Yy0+Y29uZmlnLT5waXBlX3NyY193Owo+ID4gKwkJcC0+cGxhbmVbMF0udmVydF9waXhlbHMgPSBp bnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX2g7Cj4gPiAgCj4gPiAtCQlwLT5jdXJzb3IuZW5h YmxlZCA9IHRydWU7Cj4gPiAtCQlwLT5jdXJzb3IuYnl0ZXNfcGVyX3BpeGVsID0gNDsKPiA+IC0J CXAtPmN1cnNvci5ob3Jpel9waXhlbHMgPSBpbnRlbF9jcnRjLT5iYXNlLmN1cnNvci0+c3RhdGUt PmNydGNfdyA/Cj4gPiAtCQkJCQkgaW50ZWxfY3J0Yy0+YmFzZS5jdXJzb3ItPnN0YXRlLT5jcnRj X3cgOiA2NDsKPiA+ICsJCWZiID0gY3J0Yy0+Y3Vyc29yLT5zdGF0ZS0+ZmI7Cj4gPiArCQlpZiAo ZmIpIHsKPiA+ICsJCQlwLT5jdXJzb3IuZW5hYmxlZCA9IHRydWU7Cj4gPiArCQkJcC0+Y3Vyc29y LmJ5dGVzX3Blcl9waXhlbCA9IGZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gPiArCQkJcC0+Y3Vy c29yLmhvcml6X3BpeGVscyA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmNydGNfdzsKPiA+ICsJCQlw LT5jdXJzb3IudmVydF9waXhlbHMgPSBjcnRjLT5jdXJzb3ItPnN0YXRlLT5jcnRjX2g7Cj4gPiAr CQl9IGVsc2Ugewo+ID4gKwkJCXAtPmN1cnNvci5lbmFibGVkID0gZmFsc2U7Cj4gPiArCQkJcC0+ Y3Vyc29yLmJ5dGVzX3Blcl9waXhlbCA9IDA7Cj4gPiArCQkJcC0+Y3Vyc29yLmhvcml6X3BpeGVs cyA9IDY0Owo+ID4gKwkJCXAtPmN1cnNvci52ZXJ0X3BpeGVscyA9IDY0Owo+ID4gKwkJfQo+ID4g IAl9Cj4gPiAgCj4gPiAgCWxpc3RfZm9yX2VhY2hfZW50cnkocGxhbmUsICZkZXYtPm1vZGVfY29u ZmlnLnBsYW5lX2xpc3QsIGhlYWQpIHsKPiA+IC0tIAo+ID4gMS44LjUuMQo+ID4gCj4gPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+ IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsIE9UQwoKLS0gCk1hdHQgUm9wZXIKR3JhcGhp Y3MgU29mdHdhcmUgRW5naW5lZXIKSW9URyBQbGF0Zm9ybSBFbmFibGluZyAmIERldmVsb3BtZW50 CkludGVsIENvcnBvcmF0aW9uCig5MTYpIDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==