From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 5/9] drm/i915: Pass primary plane size to .update_primary_plane() Date: Fri, 20 Mar 2015 12:04:56 +0200 Message-ID: <20150320100456.GX17419@intel.com> References: <1425986129-15547-6-git-send-email-ville.syrjala@linux.intel.com> <1426775282-24722-1-git-send-email-ville.syrjala@linux.intel.com> <550BED41.9030902@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 27C1B6E093 for ; Fri, 20 Mar 2015 03:05:01 -0700 (PDT) Content-Disposition: inline In-Reply-To: <550BED41.9030902@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Jindal, Sonika" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBNYXIgMjAsIDIwMTUgYXQgMDM6MTk6NTNQTSArMDUzMCwgSmluZGFsLCBTb25pa2Eg d3JvdGU6Cj4gCj4gCj4gT24gMy8xOS8yMDE1IDc6NTggUE0sIHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+Cj4gPiBJbiBwcmVwYXJhdGlvbiB0byBtb3ZhYmxlL3Jlc2l6 ZWFibGUgcHJpbWFyeSBwbGFuZXMgcGFzcyB0aGUgY2xpcHBlZAo+ID4gcGxhbmUgc2l6ZSB0byAu dXBkYXRlX3ByaW1hcnlfcGxhbmUoKS4KPiA+Cj4gPiB2MjogUGFzcyBzcmMgc2l6ZSB0b28gYW5k IHVzZSBpdCBhcHByb3ByaWF0ZWx5IChTb25pa2EpCj4gPgo+ID4gQ2M6IFNvbmlrYSBKaW5kYWwg PHNvbmlrYS5qaW5kYWxAaW50ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgNCArLQo+ID4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA4MSArKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0KPiA+ICAgMiBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAyOCBkZWxl dGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IGluZGV4IGVjMjMyOTAu LjA1NGJlNDIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtNTgxLDcg KzU4MSw5IEBAIHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKPiA+ICAgCQkJICB1aW50 MzJfdCBmbGFncyk7Cj4gPiAgIAl2b2lkICgqdXBkYXRlX3ByaW1hcnlfcGxhbmUpKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiA+ICAgCQkJCSAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs Cj4gPiAtCQkJCSAgICAgaW50IHgsIGludCB5KTsKPiA+ICsJCQkJICAgICBpbnQgeCwgaW50IHks Cj4gPiArCQkJCSAgICAgaW50IHNyY193LCBpbnQgc3JjX2gsCj4gPiArCQkJCSAgICAgaW50IGNy dGNfdywgaW50IGNydGNfaCk7Cj4gPiAgIAl2b2lkICgqaHBkX2lycV9zZXR1cCkoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7Cj4gPiAgIAkvKiBjbG9jayB1cGRhdGVzIGZvciBtb2RlIHNldCAqLwo+ ID4gICAJLyogY3Vyc29yIHVwZGF0ZXMgKi8KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiA+IGluZGV4IDU0OTljOGUuLjJlOWZkYWEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTI0ODIsNyArMjQ4Miw5IEBAIGludGVsX2ZpbmRf cGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ID4KPiA+ICAgc3RhdGlj IHZvaWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4g PiAgIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+IC0JCQkJICAgICAg aW50IHgsIGludCB5KQo+ID4gKwkJCQkgICAgICBpbnQgeCwgaW50IHksCj4gPiArCQkJCSAgICAg IGludCBzcmNfdywgaW50IHNyY19oLAo+ID4gKwkJCQkgICAgICBpbnQgY3J0Y193LCBpbnQgY3J0 Y19oKQo+ID4gICB7Cj4gPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ ID4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiA+IEBAIC0yNTE0LDIzICsyNTE2LDIyIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3By aW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4KPiA+ICAgCWRzcGNudHIgfD0g RElTUExBWV9QTEFORV9FTkFCTEU7Cj4gPgo+ID4gKwlXQVJOX09OQ0Uoc3JjX3cgIT0gY3J0Y193 IHx8IHNyY19oICE9IGNydGNfaCwKPiA+ICsJCSAgInByaW1hcnkgcGxhbmUgZG9lc24ndCBzdXBw b3J0IHNjYWxpbmdcbiIpOwo+ID4gKwo+ID4gICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwg NCkgewo+ID4gICAJCWlmIChpbnRlbF9jcnRjLT5waXBlID09IFBJUEVfQikKPiA+ICAgCQkJZHNw Y250ciB8PSBESVNQUExBTkVfU0VMX1BJUEVfQjsKPiA+IC0KPiA+IC0JCS8qIHBpcGVzcmMgYW5k IGRzcHNpemUgY29udHJvbCB0aGUgc2l6ZSB0aGF0IGlzIHNjYWxlZCBmcm9tLAo+ID4gLQkJICog d2hpY2ggc2hvdWxkIGFsd2F5cyBiZSB0aGUgdXNlcidzIHJlcXVlc3RlZCBzaXplLgo+ID4gLQkJ ICovCj4gPiAtCQlJOTE1X1dSSVRFKERTUFNJWkUocGxhbmUpLAo+ID4gLQkJCSAgICgoaW50ZWxf Y3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oIC0gMSkgPDwgMTYpIHwKPiA+IC0JCQkgICAoaW50ZWxf Y3J0Yy0+Y29uZmlnLT5waXBlX3NyY193IC0gMSkpOwo+ID4gKwkJSTkxNV9XUklURShEU1BTSVpF KHBsYW5lKSwgKChjcnRjX2ggLSAxKSA8PCAxNikgfCAoY3J0Y193IC0gMSkpOwo+IFNob3VsZG4n dCB0aGlzIGJlIHNyY18qIGhlcmUsIGxpa2UgeW91IGFyZSBkb2luZyBmb3Igc2tsPyBBZ2FpbiBp dCAKPiBkb2Vzbid0IG1hdHRlciBiZWNhdXNlIG5vIHNjYWxpbmcuIEJ1dCBzdGlsbCBpdCB3aWxs IGxvb2sgYmV0dGVyIGlmIHdlIAo+IHVzZSBzYW1lIHBhcmFtcyBhY3Jvc3MuCj4gPiAgIAkJSTkx NV9XUklURShEU1BQT1MocGxhbmUpLCAwKTsKPiA+ICAgCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklF VyhkZXYpICYmIHBsYW5lID09IFBMQU5FX0IpIHsKPiA+IC0JCUk5MTVfV1JJVEUoUFJJTVNJWkUo cGxhbmUpLAo+ID4gLQkJCSAgICgoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oIC0gMSkg PDwgMTYpIHwKPiA+IC0JCQkgICAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193IC0gMSkp Owo+ID4gKwkJSTkxNV9XUklURShQUklNU0laRShwbGFuZSksICgoY3J0Y19oIC0gMSkgPDwgMTYp IHwgKGNydGNfdyAtIDEpKTsKPiBTYW1lIGFzIGFib3ZlLgoKTm9wZS4gT24gQ0hWIHRoZXJlIGlz IGEgc2NhbGVyIG9uIG9uZSBvZiB0aGUgcGxhbmVzIGFuZCB0aGVyZSB3ZSdsbCBuZWVkCnRvIHdy aXRlIHRoZSBkc3Qgc2l6ZSBpbnRvIFBSSU1TSVpFLCBhbmQgdGhlIHNyYyBzaXplIHRvIGFub3Ro ZXIgcmVnaXN0ZXIuClNvIGp1c3QgdXNpbmcgdGhlIGRzdCBzaXplIGZvciBQUklNU0laRSBzZWVt cyBsaWtlIHRoZSByaWdodCBjaG9pY2UuCgpBbHNvIHdpdGggSUxLLUlWQiBzcHJpdGVzIHRoZSBk c3Qgc2l6ZSBpcyBhbHNvIGluIHRoZSBwbGFuZSBzaXplIHJlZ2lzdGVyLAphbmQgdGhlIHNvdXJj ZSBzaXplIGlzIGluIHRoZSBwbGFuZSBzY2FsZSByZWdpc3RlciAoZWcuIERWU1NJWkUgYW5kCkRW U1NTQ0FMRSksIHNvIHRoaXMgd2F5IHNlZW1zIG1vcmUgY29uc2lzdGVudCB3aXRoIG1vc3Qgb2Yg dGhlIHBsYXRmb3Jtcy4KCkFsdGhvdWdoIGlmIHdlIHdhbnQgdG8gZXhwb3NlIHRoZSBwaXhlbC9s aW5lIGRvdWJsaW5nIGFzIGZpeGVkIDJ4CnNjYWxpbmcgd2UgbWlnaHQgbmVlZCB0byByZXRoaW5r IHRoaXMgYWdhaW4uIEJ1dCBJJ20gZ29pbmcgdG8gcHJldGVuZAp0aGF0IHRoZXJlJ3Mgbm8gc3Vj aCB0aGluZyBmb3Igbm93LgoKPiA+ICAgCQlJOTE1X1dSSVRFKFBSSU1QT1MocGxhbmUpLCAwKTsK PiA+ICAgCQlJOTE1X1dSSVRFKFBSSU1DTlNUQUxQSEEocGxhbmUpLCAwKTsKPiA+ICsJfSBlbHNl IHsKPiA+ICsJCVdBUk5fT05DRShjcnRjX3cgIT0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3Ny Y193IHx8Cj4gPiArCQkJICBjcnRjX2ggIT0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19o LAo+ID4gKwkJCSAgInByaW1hcnkgcGxhbmUgc2l6ZSBkb2Vzbid0IG1hdGNoIHBpcGUgc2l6ZVxu Iik7Cj4gPiAgIAl9Cj4gPgo+ID4gICAJc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7Cj4gPiBA QCAtMjU4NiwxNCArMjU4NywxNCBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5X3Bs YW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAgCWlmIChjcnRjLT5wcmltYXJ5LT5zdGF0 ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ID4gICAJCWRzcGNudHIgfD0g RElTUFBMQU5FX1JPVEFURV8xODA7Cj4gPgo+ID4gLQkJeCArPSAoaW50ZWxfY3J0Yy0+Y29uZmln LT5waXBlX3NyY193IC0gMSk7Cj4gPiAtCQl5ICs9IChpbnRlbF9jcnRjLT5jb25maWctPnBpcGVf c3JjX2ggLSAxKTsKPiA+ICsJCXggKz0gKHNyY193IC0gMSk7Cj4gPiArCQl5ICs9IChzcmNfaCAt IDEpOwo+ID4KPiA+ICAgCQkvKiBGaW5kaW5nIHRoZSBsYXN0IHBpeGVsIG9mIHRoZSBsYXN0IGxp bmUgb2YgdGhlIGRpc3BsYXkKPiA+ICAgCQlkYXRhIGFuZCBhZGRpbmcgdG8gbGluZWFyX29mZnNl dCovCj4gPiAgIAkJbGluZWFyX29mZnNldCArPQo+ID4gLQkJCShpbnRlbF9jcnRjLT5jb25maWct PnBpcGVfc3JjX2ggLSAxKSAqIGZiLT5waXRjaGVzWzBdICsKPiA+IC0JCQkoaW50ZWxfY3J0Yy0+ Y29uZmlnLT5waXBlX3NyY193IC0gMSkgKiBwaXhlbF9zaXplOwo+ID4gKwkJCShzcmNfaCAtIDEp ICogZmItPnBpdGNoZXNbMF0gKwo+ID4gKwkJCShzcmNfdyAtIDEpICogcGl4ZWxfc2l6ZTsKPiA+ ICAgCX0KPiA+Cj4gPiAgIAlJOTE1X1dSSVRFKHJlZywgZHNwY250cik7Cj4gPiBAQCAtMjYxMSw3 ICsyNjEyLDkgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gPgo+ID4gICBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJp bWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgIAkJCQkJICBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKPiA+IC0JCQkJCSAgaW50IHgsIGludCB5KQo+ID4gKwkJCQkJICBp bnQgeCwgaW50IHksCj4gPiArCQkJCQkgIGludCBzcmNfdywgaW50IHNyY19oLAo+ID4gKwkJCQkJ ICBpbnQgY3J0Y193LCBpbnQgY3J0Y19oKQo+ID4gICB7Cj4gPiAgIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IEBAIC0yNjQzLDYgKzI2NDYsMTMgQEAgc3RhdGlj IHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ID4gICAJaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKPiA+ICAg CQlkc3BjbnRyIHw9IERJU1BQTEFORV9QSVBFX0NTQ19FTkFCTEU7Cj4gPgo+ID4gKwlXQVJOX09O Q0Uoc3JjX3cgIT0gY3J0Y193IHx8IHNyY19oICE9IGNydGNfaCwKPiA+ICsJCSAgInByaW1hcnkg cGxhbmUgZG9lc24ndCBzdXBwb3J0IHNjYWxpbmdcbiIpOwo+ID4gKwo+ID4gKwlXQVJOX09OQ0Uo Y3J0Y193ICE9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfdyB8fAo+ID4gKwkJICBjcnRj X2ggIT0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oLAo+ID4gKwkJICAicHJpbWFyeSBw bGFuZSBzaXplIGRvZXNuJ3QgbWF0Y2ggcGlwZSBzaXplXG4iKTsKPiA+ICsKPiBJIGZlZWwgdGhp cyBzaG91bGQgYmUgcGFydCBvZiB0aGUgY2hlY2tfcGxhbmUgZnVuY3Rpb25zIHdoZXJlIHdlIGFs cmVhZHkgCj4gcGVyZm9ybSBtYW55IHNpemUgcmVsYXRlZCBjaGVja3MuCgpUaGlzIGlzIGp1c3Qg YW4gYXNzZXJ0aW9uIHRvIGNhdGNoIGFueW9uZSBwYXNzaW5nIGJvZ3VzIHZhbHVlcyBoZXJlLAph bmQgYSByZW1pbmRlciB0byBwZW9wbGUgdGhhdCBpZiB0aGV5IHdhbnQgdG8gZXh0ZW5kIHRoZSBw cmltYXJ5IHBsYW5lCmNhcGFiaWxpdGllcyB0aGVyZSdzIG1vcmUgd29yayB0byBiZSBkb25lLgoK PiA+ICAgCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgewo+ID4gICAJY2FzZSBEUk1fRk9STUFU X0M4Ogo+ID4gICAJCWRzcGNudHIgfD0gRElTUFBMQU5FXzhCUFA7Cj4gPiBAQCAtMjY4NiwxNCAr MjY5NiwxNCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgIAkJZHNwY250ciB8PSBESVNQUExBTkVfUk9UQVRFXzE4 MDsKPiA+Cj4gPiAgIAkJaWYgKCFJU19IQVNXRUxMKGRldikgJiYgIUlTX0JST0FEV0VMTChkZXYp KSB7Cj4gPiAtCQkJeCArPSAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193IC0gMSk7Cj4g PiAtCQkJeSArPSAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oIC0gMSk7Cj4gPiArCQkJ eCArPSAoc3JjX3cgLSAxKTsKPiA+ICsJCQl5ICs9IChzcmNfaCAtIDEpOwo+ID4KPiA+ICAgCQkJ LyogRmluZGluZyB0aGUgbGFzdCBwaXhlbCBvZiB0aGUgbGFzdCBsaW5lIG9mIHRoZSBkaXNwbGF5 Cj4gPiAgIAkJCWRhdGEgYW5kIGFkZGluZyB0byBsaW5lYXJfb2Zmc2V0Ki8KPiA+ICAgCQkJbGlu ZWFyX29mZnNldCArPQo+ID4gLQkJCQkoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oIC0g MSkgKiBmYi0+cGl0Y2hlc1swXSArCj4gPiAtCQkJCShpbnRlbF9jcnRjLT5jb25maWctPnBpcGVf c3JjX3cgLSAxKSAqIHBpeGVsX3NpemU7Cj4gPiArCQkJCShzcmNfaCAtIDEpICogZmItPnBpdGNo ZXNbMF0gKwo+ID4gKwkJCQkoc3JjX3cgLSAxKSAqIHBpeGVsX3NpemU7Cj4gPiAgIAkJfQo+ID4g ICAJfQo+ID4KPiA+IEBAIC0yNzQ3LDcgKzI3NTcsOSBAQCB1MzIgaW50ZWxfZmJfc3RyaWRlX2Fs aWdubWVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50NjRfdCBmYl9tb2RpZmllciwKPiA+ Cj4gPiAgIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ID4gICAJCQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ IC0JCQkJCSBpbnQgeCwgaW50IHkpCj4gPiArCQkJCQkgaW50IHgsIGludCB5LAo+ID4gKwkJCQkJ IGludCBzcmNfdywgaW50IHNyY19oLAo+ID4gKwkJCQkJIGludCBjcnRjX3csIGludCBjcnRjX2gp Cj4gPiAgIHsKPiA+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ID4gQEAgLTI3NjcsNiArMjc3OSw5IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1h cnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gICAJCSAgICBQTEFORV9DVExfUElQ RV9HQU1NQV9FTkFCTEUgfAo+ID4gICAJCSAgICBQTEFORV9DVExfUElQRV9DU0NfRU5BQkxFOwo+ ID4KPiA+ICsJV0FSTl9PTkNFKHNyY193ICE9IGNydGNfdyB8fCBzcmNfaCAhPSBjcnRjX2gsCj4g PiArCQkgICJwcmltYXJ5IHBsYW5lIGRvZXNuJ3Qgc3VwcG9ydCBzY2FsaW5nXG4iKTsKPiA+ICsK PiA+ICAgCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgewo+ID4gICAJY2FzZSBEUk1fRk9STUFU X1JHQjU2NToKPiA+ICAgCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0ZPUk1BVF9SR0JfNTY1Owo+ ID4gQEAgLTI4MjYsOSArMjg0MSw3IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1h cnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4KPiA+ICAgCUk5MTVfV1JJVEUoUExB TkVfUE9TKHBpcGUsIDApLCAwKTsKPiA+ICAgCUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUs IDApLCAoeSA8PCAxNikgfCB4KTsKPiA+IC0JSTkxNV9XUklURShQTEFORV9TSVpFKHBpcGUsIDAp LAo+ID4gLQkJICAgKGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfaCAtIDEpIDw8IDE2IHwK PiA+IC0JCSAgIChpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3cgLSAxKSk7Cj4gPiArCUk5 MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCAwKSwgKChzcmNfaCAtIDEpIDw8IDE2KSB8IChzcmNf dyAtIDEpKTsKPiA+ICAgCUk5MTVfV1JJVEUoUExBTkVfU1RSSURFKHBpcGUsIDApLCBmYi0+cGl0 Y2hlc1swXSAvIHN0cmlkZV9kaXYpOwo+ID4gICAJSTkxNV9XUklURShQTEFORV9TVVJGKHBpcGUs IDApLCBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSk7Cj4gPgo+ID4gQEAgLTI4NDUsMTIg KzI4NTgsMTggQEAgaW50ZWxfcGlwZV9zZXRfYmFzZV9hdG9taWMoc3RydWN0IGRybV9jcnRjICpj cnRjLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgewo+ID4gICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiA+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+Cj4gPiAgIAlpZiAoZGV2X3ByaXYt PmRpc3BsYXkuZGlzYWJsZV9mYmMpCj4gPiAgIAkJZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9m YmMoZGV2KTsKPiA+Cj4gPiArCS8qIEZJWE1FOiB0aGlzIHdpbGwgZ28gYmFkbHkgaWYgdGhlIGZi IGlzbid0IGJpZyBlbm91Z2ggKi8KPiA+ICAgCXRvX2ludGVsX2NydGMoY3J0YyktPnByaW1hcnlf ZW5hYmxlZCA9IHRydWU7Cj4gPiAtCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV9wcmltYXJ5X3Bs YW5lKGNydGMsIGZiLCB4LCB5KTsKPiA+ICsJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3ByaW1h cnlfcGxhbmUoY3J0YywgZmIsIHgsIHksCj4gPiArCQkJCQkgICAgICAgaW50ZWxfY3J0Yy0+Y29u ZmlnLT5waXBlX3NyY193LAo+ID4gKwkJCQkJICAgICAgIGludGVsX2NydGMtPmNvbmZpZy0+cGlw ZV9zcmNfaCwKPiA+ICsJCQkJCSAgICAgICBpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3cs Cj4gPiArCQkJCQkgICAgICAgaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oKTsKPiA+Cj4g PiAgIAlyZXR1cm4gMDsKPiA+ICAgfQo+ID4gQEAgLTI4ODUsNyArMjkwNCwxMSBAQCBzdGF0aWMg dm9pZCBpbnRlbF91cGRhdGVfcHJpbWFyeV9wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiA+ICAgCQkJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3ByaW1hcnlfcGxhbmUoY3J0YywKPiA+ ICAgCQkJCQkJCSAgICAgICBzdGF0ZS0+YmFzZS5mYiwKPiA+ICAgCQkJCQkJCSAgICAgICBzdGF0 ZS0+c3JjLngxID4+IDE2LAo+ID4gLQkJCQkJCQkgICAgICAgc3RhdGUtPnNyYy55MSA+PiAxNik7 Cj4gPiArCQkJCQkJCSAgICAgICBzdGF0ZS0+c3JjLnkxID4+IDE2LAo+ID4gKwkJCQkJCQkgICAg ICAgZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5zcmMpID4+IDE2LAo+ID4gKwkJCQkJCQkgICAgICAg ZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+c3JjKSA+PiAxNiwKPiA+ICsJCQkJCQkJICAgICAgIGRy bV9yZWN0X3dpZHRoKCZzdGF0ZS0+ZHN0KSwKPiA+ICsJCQkJCQkJICAgICAgIGRybV9yZWN0X2hl aWdodCgmc3RhdGUtPmRzdCkpOwo+IFRoZSBvcmRlciBpbiBpbnRlbF9zcHJpdGUuYyBpcyBkc3Qg eCwgeSwgZGVzdCB3LCBoLCB0aGVuIHNyYyB4LCB5LCBzcmMgCj4gdywgaC4gQnV0IHdlIGNhbiBz b3J0IGl0IGxhdGVyIHdoZW4gd2UgYXJlIGFjdHVhbGx5IG1lcmdpbmcgYm90aCB0aGUgCj4gdXBk YXRlIGZ1bmN0aW9ucyBmb3IgcHJpbWFyeSBhbmQgc3ByaXRlcy4KCk9oLiBGYWlsZWQgdG8gbm90 aWNlIHRoYXQuIEJ1dCB5ZWFoIGVhc3kgZW5vdWdoIHRvIGZpeCB3aGVuIHdlIHVuaWZ5LgoKPiAK PiBBbHNvLCBJIHRoaW5rIGl0IHdpbGwgYmUgYmV0dGVyIHRvIHBhc3MgY3J0Y194LCBjcnRjX3kg YWxzbyB0byBiZSB1c2VkIAo+IHRvIHNldCBwbGFuZSBwb3NpdGlvbi4KClRoYXQncyBpbiB0aGUg bmV4dCBwYXRjaC4KCj4gCj4gLVNvbmlrYQo+ID4gICAJCX0KPiA+Cj4gPiAgIAkJZHJtX21vZGVz ZXRfdW5sb2NrKCZjcnRjLT5tdXRleCk7Cj4gPiBAQCAtMTIwNzAsNyArMTIwOTMsMTEgQEAgaW50 ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAgIAkJ ZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3ByaW1hcnlfcGxhbmUoY3J0YywKPiA+ICAgCQkJCQkJ ICAgICAgIHN0YXRlLT5iYXNlLmZiLAo+ID4gICAJCQkJCQkgICAgICAgc3RhdGUtPnNyYy54MSA+ PiAxNiwKPiA+IC0JCQkJCQkgICAgICAgc3RhdGUtPnNyYy55MSA+PiAxNik7Cj4gPiArCQkJCQkJ ICAgICAgIHN0YXRlLT5zcmMueTEgPj4gMTYsCj4gPiArCQkJCQkJICAgICAgIGRybV9yZWN0X3dp ZHRoKCZzdGF0ZS0+c3JjKSA+PiAxNiwKPiA+ICsJCQkJCQkgICAgICAgZHJtX3JlY3RfaGVpZ2h0 KCZzdGF0ZS0+c3JjKSA+PiAxNiwKPiA+ICsJCQkJCQkgICAgICAgZHJtX3JlY3Rfd2lkdGgoJnN0 YXRlLT5kc3QpLAo+ID4gKwkJCQkJCSAgICAgICBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5kc3Qp KTsKPiA+ICAgCX0KPiA+ICAgfQo+ID4KPiA+CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9U QwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=