From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v4 03/21] drm/i915: Pass 90/270 vs. 0/180 rotation info for intel_gen4_compute_page_offset() Date: Tue, 16 Feb 2016 17:23:46 +0100 Message-ID: <20160216162345.GZ32705@phenom.ffwll.local> References: <1455569699-27905-1-git-send-email-ville.syrjala@linux.intel.com> <1455569699-27905-4-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f54.google.com (mail-wm0-f54.google.com [74.125.82.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id B65776E7C5 for ; Tue, 16 Feb 2016 16:23:20 +0000 (UTC) Received: by mail-wm0-f54.google.com with SMTP id a4so108035843wme.1 for ; Tue, 16 Feb 2016 08:23:20 -0800 (PST) Content-Disposition: inline In-Reply-To: <1455569699-27905-4-git-send-email-ville.syrjala@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: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBGZWIgMTUsIDIwMTYgYXQgMTA6NTQ6NDFQTSArMDIwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBUaGUgcGFnZSBhbGlnbmVkIHN1cmZhY2UgYWRkcmVz cyBjYWxjdWxhdGlvbiBuZWVkcyB0byBrbm93IHdoaWNoIHdheQo+IHRoaW5ncyBhcmUgcm90YXRl ZC4gVGhlIGNvbnRyYWN0IG5vdyBzYXlzIHRoYXQgdGhlIGNhbGxlciBtdXN0IHBhc3MgdGhlCj4g cm90YXRlIHgveSBjb29yZGluYXRlcywgYXMgd2VsbCBhcyB0aGUgdGlsZV9oZWlnaHQgYWxpZ25l ZCBzdHJpZGUgaW4KPiB0aGUgdGlsZV9oZWlnaHQgZGlyZWN0aW9uLiBUaGlzIHdpbGwgbWFrZSBp dCBmYWlybHkgc2ltcGxlIHRvIGRlYWwgd2l0aAo+IDkwLzI3MCBkZWdyZWUgcm90YXRpb24gb24g U0tMKyB3aGVyZSB3ZSBoYXZlIHRvIGRlYWwgd2l0aCB0aGUgcm90YXRlZAo+IHZpZXcgaW50byB0 aGUgR1RULgo+IAo+IHYyOiBQYXNzIHJvdGF0aW9uIGluc3RlYWQgb2YgYm9vbCBldmVuIHRob3Vn aHdlIG9ubHkgY2FyZSBhYm91dCAwLzE4MCB2cy4gOTAvMjcwCj4gdjM6IEludHJvZHVjZSBpbnRl bF90aWxlX2RpbXMoKSwgYW5kIGRvbid0IG1peCB1cCBkaWZmZXJlbnQgdW5pdHMgc28gbXVjaAo+ IHY0OiBVbmNvbmZ1c2UgYnl0ZXMgdnMuIHBpeGVscyBldmVuIG1vcmUKPiAKPiBTaWduZWQtb2Zm LWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKSSdt IGdldHRpbmcgYWxsIGZ1bmt5IHN0YXJpbmcgYXQgdGhpcyBvbmNlIG1vcmUgLi4uIEJ1dCBJIHRo aW5rIGl0IHN0aWxsCmxvb2tzIGNvcnJlY3QsIGFuZCBpdCdzIGRlZmluaXRlbHkgbXVjaCBsZXNz IGNvbmZ1c2luZy4KClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZm d2xsLmNoPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwg NzIgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jICB8IDE4ICsrKysrLS0tLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDYzIGluc2Vy dGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiBpbmRleCBhY2M2MzJjMDYxMzUuLmRjZjM3OWMyOTUyMyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMjI2OSw2ICsyMjY5LDIwIEBAIHVuc2lnbmVk IGludCBpbnRlbF90aWxlX2hlaWdodChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gIAkJCWludGVsX3RpbGVfd2lkdGhfYnl0ZXMoZGV2X3ByaXYsIGZiX21vZGlmaWVy LCBjcHApOwo+ICB9Cj4gIAo+ICsvKiBSZXR1cm4gdGhlIHRpbGUgZGltZW5zaW9ucyBpbiBwaXhl bCB1bml0cyAqLwo+ICtzdGF0aWMgdm9pZCBpbnRlbF90aWxlX2RpbXMoY29uc3Qgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAgdW5zaWduZWQgaW50ICp0aWxlX3dp ZHRoLAo+ICsJCQkgICAgdW5zaWduZWQgaW50ICp0aWxlX2hlaWdodCwKPiArCQkJICAgIHVpbnQ2 NF90IGZiX21vZGlmaWVyLAo+ICsJCQkgICAgdW5zaWduZWQgaW50IGNwcCkKPiArewo+ICsJdW5z aWduZWQgaW50IHRpbGVfd2lkdGhfYnl0ZXMgPQo+ICsJCWludGVsX3RpbGVfd2lkdGhfYnl0ZXMo ZGV2X3ByaXYsIGZiX21vZGlmaWVyLCBjcHApOwo+ICsKPiArCSp0aWxlX3dpZHRoID0gdGlsZV93 aWR0aF9ieXRlcyAvIGNwcDsKPiArCSp0aWxlX2hlaWdodCA9IGludGVsX3RpbGVfc2l6ZShkZXZf cHJpdikgLyB0aWxlX3dpZHRoX2J5dGVzOwo+ICt9Cj4gKwo+ICB1bnNpZ25lZCBpbnQKPiAgaW50 ZWxfZmJfYWxpZ25faGVpZ2h0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBo ZWlnaHQsCj4gIAkJICAgICAgdWludDMyX3QgcGl4ZWxfZm9ybWF0LCB1aW50NjRfdCBmYl9tb2Rp ZmllcikKPiBAQCAtMjI4NSw3ICsyMjk5LDcgQEAgaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoc3Ry dWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAg ewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShmYi0+ZGV2 KTsKPiAgCXN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICppbmZvID0gJnZpZXctPnBhcmFtcy5y b3RhdGVkOwo+IC0JdW5zaWduZWQgaW50IHRpbGVfc2l6ZSwgdGlsZV93aWR0aF9ieXRlcywgdGls ZV9oZWlnaHQsIGNwcDsKPiArCXVuc2lnbmVkIGludCB0aWxlX3NpemUsIHRpbGVfd2lkdGgsIHRp bGVfaGVpZ2h0LCBjcHA7Cj4gIAo+ICAJKnZpZXcgPSBpOTE1X2dndHRfdmlld19ub3JtYWw7Cj4g IAo+IEBAIC0yMzA2LDE5ICsyMzIwLDE5IEBAIGludGVsX2ZpbGxfZmJfZ2d0dF92aWV3KHN0cnVj dCBpOTE1X2dndHRfdmlldyAqdmlldywgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gIAl0 aWxlX3NpemUgPSBpbnRlbF90aWxlX3NpemUoZGV2X3ByaXYpOwo+ICAKPiAgCWNwcCA9IGRybV9m b3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+IC0JdGlsZV93aWR0aF9ieXRl cyA9IGludGVsX3RpbGVfd2lkdGhfYnl0ZXMoZGV2X3ByaXYsIGZiLT5tb2RpZmllclswXSwgY3Bw KTsKPiAtCXRpbGVfaGVpZ2h0ID0gdGlsZV9zaXplIC8gdGlsZV93aWR0aF9ieXRlczsKPiArCWlu dGVsX3RpbGVfZGltcyhkZXZfcHJpdiwgJnRpbGVfd2lkdGgsICZ0aWxlX2hlaWdodCwKPiArCQkJ ZmItPm1vZGlmaWVyWzBdLCBjcHApOwo+ICAKPiAtCWluZm8tPndpZHRoX3BhZ2VzID0gRElWX1JP VU5EX1VQKGZiLT5waXRjaGVzWzBdLCB0aWxlX3dpZHRoX2J5dGVzKTsKPiArCWluZm8tPndpZHRo X3BhZ2VzID0gRElWX1JPVU5EX1VQKGZiLT5waXRjaGVzWzBdLCB0aWxlX3dpZHRoICogY3BwKTsK PiAgCWluZm8tPmhlaWdodF9wYWdlcyA9IERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCB0aWxlX2hl aWdodCk7Cj4gIAlpbmZvLT5zaXplID0gaW5mby0+d2lkdGhfcGFnZXMgKiBpbmZvLT5oZWlnaHRf cGFnZXMgKiB0aWxlX3NpemU7Cj4gIAo+ICAJaWYgKGluZm8tPnBpeGVsX2Zvcm1hdCA9PSBEUk1f Rk9STUFUX05WMTIpIHsKPiAgCQljcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxf Zm9ybWF0LCAxKTsKPiAtCQl0aWxlX3dpZHRoX2J5dGVzID0gaW50ZWxfdGlsZV93aWR0aF9ieXRl cyhkZXZfcHJpdiwgZmItPm1vZGlmaWVyWzFdLCBjcHApOwo+IC0JCXRpbGVfaGVpZ2h0ID0gdGls ZV9zaXplIC8gdGlsZV93aWR0aF9ieXRlczsKPiArCQlpbnRlbF90aWxlX2RpbXMoZGV2X3ByaXYs ICZ0aWxlX3dpZHRoLCAmdGlsZV9oZWlnaHQsCj4gKwkJCQlmYi0+bW9kaWZpZXJbMV0sIGNwcCk7 Cj4gIAo+IC0JCWluZm8tPndpZHRoX3BhZ2VzX3V2ID0gRElWX1JPVU5EX1VQKGZiLT5waXRjaGVz WzFdLCB0aWxlX3dpZHRoX2J5dGVzKTsKPiArCQlpbmZvLT53aWR0aF9wYWdlc191diA9IERJVl9S T1VORF9VUChmYi0+cGl0Y2hlc1sxXSwgdGlsZV93aWR0aCAqIGNwcCk7Cj4gIAkJaW5mby0+aGVp Z2h0X3BhZ2VzX3V2ID0gRElWX1JPVU5EX1VQKGZiLT5oZWlnaHQgLyAyLCB0aWxlX2hlaWdodCk7 Cj4gIAkJaW5mby0+c2l6ZV91diA9IGluZm8tPndpZHRoX3BhZ2VzX3V2ICogaW5mby0+aGVpZ2h0 X3BhZ2VzX3V2ICogdGlsZV9zaXplOwo+ICAJfQo+IEBAIC0yNDQ2LDI5ICsyNDYwLDQzIEBAIHN0 YXRpYyB2b2lkIGludGVsX3VucGluX2ZiX29iaihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwK PiAgCWk5MTVfZ2VtX29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUob2JqLCAmdmlldyk7 Cj4gIH0KPiAgCj4gLS8qIENvbXB1dGVzIHRoZSBsaW5lYXIgb2Zmc2V0IHRvIHRoZSBiYXNlIHRp bGUgYW5kIGFkanVzdHMgeCwgeS4gYnl0ZXMgcGVyIHBpeGVsCj4gLSAqIGlzIGFzc3VtZWQgdG8g YmUgYSBwb3dlci1vZi10d28uICovCj4gKy8qCj4gKyAqIENvbXB1dGVzIHRoZSBsaW5lYXIgb2Zm c2V0IHRvIHRoZSBiYXNlIHRpbGUgYW5kIGFkanVzdHMKPiArICogeCwgeS4gYnl0ZXMgcGVyIHBp eGVsIGlzIGFzc3VtZWQgdG8gYmUgYSBwb3dlci1vZi10d28uCj4gKyAqCj4gKyAqIEluIHRoZSA5 MC8yNzAgcm90YXRlZCBjYXNlLCB4IGFuZCB5IGFyZSBhc3N1bWVkCj4gKyAqIHRvIGJlIGFscmVh ZHkgcm90YXRlZCB0byBtYXRjaCB0aGUgcm90YXRlZCBHVFQgdmlldywgYW5kCj4gKyAqIHBpdGNo IGlzIHRoZSB0aWxlX2hlaWdodCBhbGlnbmVkIGZyYW1lYnVmZmVyIGhlaWdodC4KPiArICovCj4g IHUzMiBpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCQkJICAgICAgaW50ICp4LCBpbnQgKnksCj4gIAkJCSAgICAgIHVpbnQ2NF90 IGZiX21vZGlmaWVyLAo+ICAJCQkgICAgICB1bnNpZ25lZCBpbnQgY3BwLAo+IC0JCQkgICAgICB1 bnNpZ25lZCBpbnQgcGl0Y2gpCj4gKwkJCSAgICAgIHVuc2lnbmVkIGludCBwaXRjaCwKPiArCQkJ ICAgICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ICB7Cj4gIAlpZiAoZmJfbW9kaWZpZXIgIT0g RFJNX0ZPUk1BVF9NT0RfTk9ORSkgewo+IC0JCXVuc2lnbmVkIGludCB0aWxlX3NpemUsIHRpbGVf d2lkdGhfYnl0ZXMsIHRpbGVfaGVpZ2h0Owo+IC0JCXVuc2lnbmVkIGludCB0aWxlX3Jvd3MsIHRp bGVzOwo+ICsJCXVuc2lnbmVkIGludCB0aWxlX3NpemUsIHRpbGVfd2lkdGgsIHRpbGVfaGVpZ2h0 Owo+ICsJCXVuc2lnbmVkIGludCB0aWxlX3Jvd3MsIHRpbGVzLCBwaXRjaF90aWxlczsKPiAgCj4g IAkJdGlsZV9zaXplID0gaW50ZWxfdGlsZV9zaXplKGRldl9wcml2KTsKPiAtCQl0aWxlX3dpZHRo X2J5dGVzID0gaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhkZXZfcHJpdiwgZmJfbW9kaWZpZXIsIGNw cCk7Cj4gLQkJdGlsZV9oZWlnaHQgPSB0aWxlX3NpemUgLyB0aWxlX3dpZHRoX2J5dGVzOwo+ICsJ CWludGVsX3RpbGVfZGltcyhkZXZfcHJpdiwgJnRpbGVfd2lkdGgsICZ0aWxlX2hlaWdodCwKPiAr CQkJCWZiX21vZGlmaWVyLCBjcHApOwo+ICsKPiArCQlpZiAoaW50ZWxfcm90YXRpb25fOTBfb3Jf MjcwKHJvdGF0aW9uKSkgewo+ICsJCQlwaXRjaF90aWxlcyA9IHBpdGNoIC8gdGlsZV9oZWlnaHQ7 Cj4gKwkJCXN3YXAodGlsZV93aWR0aCwgdGlsZV9oZWlnaHQpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJ CXBpdGNoX3RpbGVzID0gcGl0Y2ggLyAodGlsZV93aWR0aCAqIGNwcCk7Cj4gKwkJfQo+ICAKPiAg CQl0aWxlX3Jvd3MgPSAqeSAvIHRpbGVfaGVpZ2h0Owo+ICAJCSp5ICU9IHRpbGVfaGVpZ2h0Owo+ ICAKPiAtCQl0aWxlcyA9ICp4IC8gKHRpbGVfd2lkdGhfYnl0ZXMvY3BwKTsKPiAtCQkqeCAlPSB0 aWxlX3dpZHRoX2J5dGVzL2NwcDsKPiArCQl0aWxlcyA9ICp4IC8gdGlsZV93aWR0aDsKPiArCQkq eCAlPSB0aWxlX3dpZHRoOwo+ICAKPiAtCQlyZXR1cm4gdGlsZV9yb3dzICogcGl0Y2ggKiB0aWxl X2hlaWdodCArIHRpbGVzICogdGlsZV9zaXplOwo+ICsJCXJldHVybiAodGlsZV9yb3dzICogcGl0 Y2hfdGlsZXMgKyB0aWxlcykgKiB0aWxlX3NpemU7Cj4gIAl9IGVsc2Ugewo+ICAJCXVuc2lnbmVk IGludCBhbGlnbm1lbnQgPSBpbnRlbF9saW5lYXJfYWxpZ25tZW50KGRldl9wcml2KSAtIDE7Cj4g IAkJdW5zaWduZWQgaW50IG9mZnNldDsKPiBAQCAtMjcxMyw2ICsyNzQxLDcgQEAgc3RhdGljIHZv aWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAo+ ICAJdTMyIGxpbmVhcl9vZmZzZXQ7Cj4gIAl1MzIgZHNwY250cjsKPiAgCWk5MTVfcmVnX3QgcmVn ID0gRFNQQ05UUihwbGFuZSk7Cj4gKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0 ZS0+YmFzZS5yb3RhdGlvbjsKPiAgCWludCBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+ cGl4ZWxfZm9ybWF0LCAwKTsKPiAgCWludCB4ID0gcGxhbmVfc3RhdGUtPnNyYy54MSA+PiAxNjsK PiAgCWludCB5ID0gcGxhbmVfc3RhdGUtPnNyYy55MSA+PiAxNjsKPiBAQCAtMjc3OSwxMyArMjgw OCwxMyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1f cGxhbmUgKnByaW1hcnksCj4gIAkJaW50ZWxfY3J0Yy0+ZHNwYWRkcl9vZmZzZXQgPQo+ICAJCQlp bnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KGRldl9wcml2LCAmeCwgJnksCj4gIAkJCQkJCSAgZmIt Pm1vZGlmaWVyWzBdLCBjcHAsCj4gLQkJCQkJCSAgZmItPnBpdGNoZXNbMF0pOwo+ICsJCQkJCQkg IGZiLT5waXRjaGVzWzBdLCByb3RhdGlvbik7Cj4gIAkJbGluZWFyX29mZnNldCAtPSBpbnRlbF9j cnRjLT5kc3BhZGRyX29mZnNldDsKPiAgCX0gZWxzZSB7Cj4gIAkJaW50ZWxfY3J0Yy0+ZHNwYWRk cl9vZmZzZXQgPSBsaW5lYXJfb2Zmc2V0Owo+ICAJfQo+ICAKPiAtCWlmIChwbGFuZV9zdGF0ZS0+ YmFzZS5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gKwlpZiAocm90YXRpb24g PT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICAJCWRzcGNudHIgfD0gRElTUFBMQU5FX1JPVEFU RV8xODA7Cj4gIAo+ICAJCXggKz0gKGNydGNfc3RhdGUtPnBpcGVfc3JjX3cgLSAxKTsKPiBAQCAt Mjg0Myw2ICsyODcyLDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwKPiAgCXUzMiBsaW5lYXJfb2Zmc2V0Owo+ICAJ dTMyIGRzcGNudHI7Cj4gIAlpOTE1X3JlZ190IHJlZyA9IERTUENOVFIocGxhbmUpOwo+ICsJdW5z aWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247Cj4gIAlpbnQg Y3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gIAlpbnQg eCA9IHBsYW5lX3N0YXRlLT5zcmMueDEgPj4gMTY7Cj4gIAlpbnQgeSA9IHBsYW5lX3N0YXRlLT5z cmMueTEgPj4gMTY7Cj4gQEAgLTI4ODYsOSArMjkxNiw5IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtl X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksCj4gIAlpbnRl bF9jcnRjLT5kc3BhZGRyX29mZnNldCA9Cj4gIAkJaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChk ZXZfcHJpdiwgJngsICZ5LAo+ICAJCQkJCSAgZmItPm1vZGlmaWVyWzBdLCBjcHAsCj4gLQkJCQkJ ICBmYi0+cGl0Y2hlc1swXSk7Cj4gKwkJCQkJICBmYi0+cGl0Y2hlc1swXSwgcm90YXRpb24pOwo+ ICAJbGluZWFyX29mZnNldCAtPSBpbnRlbF9jcnRjLT5kc3BhZGRyX29mZnNldDsKPiAtCWlmIChw bGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gKwlp ZiAocm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICAJCWRzcGNudHIgfD0gRElT UFBMQU5FX1JPVEFURV8xODA7Cj4gIAo+ICAJCWlmICghSVNfSEFTV0VMTChkZXYpICYmICFJU19C Uk9BRFdFTEwoZGV2KSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggM2NhZTM3 NjhlYTM3Li43OTkyZTdhOTc0ZjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBA IC0xMTc3LDcgKzExNzcsOCBAQCB1MzIgaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgIGludCAqeCwgaW50ICp5LAo+ ICAJCQkgICAgICB1aW50NjRfdCBmYl9tb2RpZmllciwKPiAgCQkJICAgICAgdW5zaWduZWQgaW50 IGNwcCwKPiAtCQkJICAgICAgdW5zaWduZWQgaW50IHBpdGNoKTsKPiArCQkJICAgICAgdW5zaWdu ZWQgaW50IHBpdGNoLAo+ICsJCQkgICAgICB1bnNpZ25lZCBpbnQgcm90YXRpb24pOwo+ICB2b2lk IGludGVsX3ByZXBhcmVfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgaW50 ZWxfZmluaXNoX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIGhzd19lbmFi bGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBhMjU4MmM0NTViMzYuLjdkYzJiOGIyYTRhYyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTE5Myw3ICsxOTMsNyBAQCBz a2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKPiAgCWNvbnN0IHN0 cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7 Cj4gIAl1MzIgc3VyZl9hZGRyOwo+ICAJdTMyIHRpbGVfaGVpZ2h0LCBwbGFuZV9vZmZzZXQsIHBs YW5lX3NpemU7Cj4gLQl1bnNpZ25lZCBpbnQgcm90YXRpb247Cj4gKwl1bnNpZ25lZCBpbnQgcm90 YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKPiAgCWludCB4X29mZnNldCwgeV9v ZmZzZXQ7Cj4gIAlpbnQgY3J0Y194ID0gcGxhbmVfc3RhdGUtPmRzdC54MTsKPiAgCWludCBjcnRj X3kgPSBwbGFuZV9zdGF0ZS0+ZHN0LnkxOwo+IEBAIC0yMTMsNyArMjEzLDYgQEAgc2tsX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCj4gIAlwbGFuZV9jdGwgfD0gc2ts X3BsYW5lX2N0bF9mb3JtYXQoZmItPnBpeGVsX2Zvcm1hdCk7Cj4gIAlwbGFuZV9jdGwgfD0gc2ts X3BsYW5lX2N0bF90aWxpbmcoZmItPm1vZGlmaWVyWzBdKTsKPiAgCj4gLQlyb3RhdGlvbiA9IHBs YW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ICAJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxf cm90YXRpb24ocm90YXRpb24pOwo+ICAKPiAgCXN0cmlkZV9kaXYgPSBpbnRlbF9mYl9zdHJpZGVf YWxpZ25tZW50KGRldl9wcml2LCBmYi0+bW9kaWZpZXJbMF0sCj4gQEAgLTM1MSw2ICszNTAsNyBA QCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwKPiAgCWludCBwbGFu ZSA9IGludGVsX3BsYW5lLT5wbGFuZTsKPiAgCXUzMiBzcHJjdGw7Cj4gIAl1MzIgc3Byc3VyZl9v ZmZzZXQsIGxpbmVhcl9vZmZzZXQ7Cj4gKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBkcGxhbmUt PnN0YXRlLT5yb3RhdGlvbjsKPiAgCWludCBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+ cGl4ZWxfZm9ybWF0LCAwKTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9y a2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7Cj4gIAlpbnQgY3J0Y194ID0gcGxhbmVfc3Rh dGUtPmRzdC54MTsKPiBAQCAtNDI1LDEwICs0MjUsMTAgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpkcGxhbmUsCj4gIAlsaW5lYXJfb2Zmc2V0ID0geSAqIGZiLT5waXRjaGVz WzBdICsgeCAqIGNwcDsKPiAgCXNwcnN1cmZfb2Zmc2V0ID0gaW50ZWxfY29tcHV0ZV90aWxlX29m ZnNldChkZXZfcHJpdiwgJngsICZ5LAo+ICAJCQkJCQkgICBmYi0+bW9kaWZpZXJbMF0sIGNwcCwK PiAtCQkJCQkJICAgZmItPnBpdGNoZXNbMF0pOwo+ICsJCQkJCQkgICBmYi0+cGl0Y2hlc1swXSwg cm90YXRpb24pOwo+ICAJbGluZWFyX29mZnNldCAtPSBzcHJzdXJmX29mZnNldDsKPiAgCj4gLQlp ZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ ICsJaWYgKHJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiAgCQlzcHJjdGwgfD0g U1BfUk9UQVRFXzE4MDsKPiAgCj4gIAkJeCArPSBzcmNfdzsKPiBAQCAtNDkzLDYgKzQ5Myw3IEBA IGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAllbnVtIHBpcGUg cGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwo+ICAJdTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOwo+ ICAJdTMyIHNwcnN1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0Owo+ICsJdW5zaWduZWQgaW50IHJv dGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247Cj4gIAlpbnQgY3BwID0gZHJtX2Zv cm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gIAljb25zdCBzdHJ1Y3QgZHJt X2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5Owo+ICAJaW50 IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5kc3QueDE7Cj4gQEAgLTU1OCwxMCArNTU5LDEwIEBAIGl2 Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlsaW5lYXJfb2Zmc2V0 ID0geSAqIGZiLT5waXRjaGVzWzBdICsgeCAqIGNwcDsKPiAgCXNwcnN1cmZfb2Zmc2V0ID0gaW50 ZWxfY29tcHV0ZV90aWxlX29mZnNldChkZXZfcHJpdiwgJngsICZ5LAo+ICAJCQkJCQkgICBmYi0+ bW9kaWZpZXJbMF0sIGNwcCwKPiAtCQkJCQkJICAgZmItPnBpdGNoZXNbMF0pOwo+ICsJCQkJCQkg ICBmYi0+cGl0Y2hlc1swXSwgcm90YXRpb24pOwo+ICAJbGluZWFyX29mZnNldCAtPSBzcHJzdXJm X29mZnNldDsKPiAgCj4gLQlpZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24gPT0gQklUKERS TV9ST1RBVEVfMTgwKSkgewo+ICsJaWYgKHJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkp IHsKPiAgCQlzcHJjdGwgfD0gU1BSSVRFX1JPVEFURV8xODA7Cj4gIAo+ICAJCS8qIEhTVyBhbmQg QkRXIGRvZXMgdGhpcyBhdXRvbWFnaWNhbGx5IGluIGhhcmR3YXJlICovCj4gQEAgLTYzNCw2ICs2 MzUsNyBAQCBpbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJaW50 IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKPiAgCXUzMiBkdnNjbnRyLCBkdnNzY2FsZTsKPiAg CXUzMiBkdnNzdXJmX29mZnNldCwgbGluZWFyX29mZnNldDsKPiArCXVuc2lnbmVkIGludCByb3Rh dGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ICAJaW50IGNwcCA9IGRybV9mb3Jt YXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+ICAJY29uc3Qgc3RydWN0IGRybV9p bnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKPiAgCWludCBj cnRjX3ggPSBwbGFuZV9zdGF0ZS0+ZHN0LngxOwo+IEBAIC02OTUsMTAgKzY5NywxMCBAQCBpbGtf dXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJbGluZWFyX29mZnNldCA9 IHkgKiBmYi0+cGl0Y2hlc1swXSArIHggKiBjcHA7Cj4gIAlkdnNzdXJmX29mZnNldCA9IGludGVs X2NvbXB1dGVfdGlsZV9vZmZzZXQoZGV2X3ByaXYsICZ4LCAmeSwKPiAgCQkJCQkJICAgZmItPm1v ZGlmaWVyWzBdLCBjcHAsCj4gLQkJCQkJCSAgIGZiLT5waXRjaGVzWzBdKTsKPiArCQkJCQkJICAg ZmItPnBpdGNoZXNbMF0sIHJvdGF0aW9uKTsKPiAgCWxpbmVhcl9vZmZzZXQgLT0gZHZzc3VyZl9v ZmZzZXQ7Cj4gIAo+IC0JaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uID09IEJJVChEUk1f Uk9UQVRFXzE4MCkpIHsKPiArCWlmIChyb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7 Cj4gIAkJZHZzY250ciB8PSBEVlNfUk9UQVRFXzE4MDsKPiAgCj4gIAkJeCArPSBzcmNfdzsKPiAt LSAKPiAyLjQuMTAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK