From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 09/10] drm/i915: s/pipe_config/new_crtc_state/ in .crtc_enable() Date: Fri, 15 Nov 2019 17:15:36 +0200 Message-ID: <20191115151536.GE1208@intel.com> References: <20191112141503.1116-1-ville.syrjala@linux.intel.com> <20191112141503.1116-10-ville.syrjala@linux.intel.com> <20191114003547.GJ28227@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 611776E841 for ; Fri, 15 Nov 2019 15:16:21 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191114003547.GJ28227@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMTMsIDIwMTkgYXQgMDQ6MzU6NDdQTSAtMDgwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBUdWUsIE5vdiAxMiwgMjAxOSBhdCAwNDoxNTowMlBNICswMjAwLCBWaWxsZSBT eXJqYWxhIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IAo+ID4gUmVuYW1lIHBpcGVfY29uZmlnIHRvIG5ld19jcnRjX3N0 YXRlIGluIHRoZSAuY3J0Y19lbmFibGUoKSBob29rcy4KPiA+IFRoZSAncGlwZV9jb25maWcnIG5h bWUgaXMgYSB6b21iaWUgdGhhdCB3ZSBuZWVkIHRvIGZpbmFsbHkgcHV0IGRvd24uCj4gCj4gU28g YmFzaWNhbGx5IHVzZSBwaXBlX2NvbmZpZyBvbmx5IGluIGF0b21pYyBjaGVjayBmdW5jdGlvbnMK PiBsaWtlIGNvbXB1dGVfY29uZmlnKCkgZXRjIGFuZCB0aGVuIGFsbCBhdG9taWMgY29tbWl0IGhv b2tzIHJlcGxhY2UgdGhhdAo+IHdpdGggbmV3X2NydGNfc3RhdGUgPwoKTm8uICdwaXBlX2NvbmZp Zycgc2hvdWxkIGJlIGRpc2FwcGVhcmVkIGVudGlyZWx5LgoKPiAKPiBSZXBsYWNlbWVudHMgYmVs b3cgbG9vayBnb29kLAo+IAo+IFJldmlld2VkLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5u YXZhcmVAaW50ZWwuY29tPgo+IAo+IE1hbmFzaQo+IAo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgfCAxNzUgKysr KysrKysrLS0tLS0tLS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA4 OSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IGIwOTFiOTJhNjc3Yy4uMTE5NTNmZTA2NDg4IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4g PiBAQCAtNjQ2MCwxMCArNjQ2MCwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3ByaW1h cnlfcGxhbmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdAo+ID4gIAlw bGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFuZSwgY3J0Y19zdGF0ZSk7Cj4gPiAgfQo+ID4gIAo+ID4g LXN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZywKPiA+ICtzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUsCj4gPiAgCQkJCSBzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKPiA+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNy dGMpOwo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmJhc2UuZGV2KTsKPiA+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gIAo+ ID4gQEAgLTY0ODMsNTUgKzY0ODMsNTQgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFi bGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gIAlpbnRlbF9zZXRf Y3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCBmYWxzZSk7Cj4gPiAg CWludGVsX3NldF9wY2hfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZh bHNlKTsKPiA+ICAKPiA+IC0JaWYgKHBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCj4gPiAt CQlpbnRlbF9wcmVwYXJlX3NoYXJlZF9kcGxsKHBpcGVfY29uZmlnKTsKPiA+ICsJaWYgKG5ld19j cnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4gPiArCQlpbnRlbF9wcmVwYXJlX3NoYXJlZF9k cGxsKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+IC0JaWYgKGludGVsX2NydGNfaGFzX2RwX2Vu Y29kZXIocGlwZV9jb25maWcpKQo+ID4gLQkJaW50ZWxfZHBfc2V0X21fbihwaXBlX2NvbmZpZywg TTFfTjEpOwo+ID4gKwlpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihuZXdfY3J0Y19zdGF0 ZSkpCj4gPiArCQlpbnRlbF9kcF9zZXRfbV9uKG5ld19jcnRjX3N0YXRlLCBNMV9OMSk7Cj4gPiAg Cj4gPiAtCWludGVsX3NldF9waXBlX3RpbWluZ3MocGlwZV9jb25maWcpOwo+ID4gLQlpbnRlbF9z ZXRfcGlwZV9zcmNfc2l6ZShwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX3NldF9waXBlX3RpbWlu Z3MobmV3X2NydGNfc3RhdGUpOwo+ID4gKwlpbnRlbF9zZXRfcGlwZV9zcmNfc2l6ZShuZXdfY3J0 Y19zdGF0ZSk7Cj4gPiAgCj4gPiAtCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7 Cj4gPiAtCQlpbnRlbF9jcHVfdHJhbnNjb2Rlcl9zZXRfbV9uKHBpcGVfY29uZmlnLAo+ID4gLQkJ CQkJICAgICAmcGlwZV9jb25maWctPmZkaV9tX24sIE5VTEwpOwo+ID4gLQl9Cj4gPiArCWlmIChu ZXdfY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNvZGVyKQo+ID4gKwkJaW50ZWxfY3B1X3RyYW5zY29k ZXJfc2V0X21fbihuZXdfY3J0Y19zdGF0ZSwKPiA+ICsJCQkJCSAgICAgJm5ld19jcnRjX3N0YXRl LT5mZGlfbV9uLCBOVUxMKTsKPiA+ICAKPiA+IC0JaXJvbmxha2Vfc2V0X3BpcGVjb25mKHBpcGVf Y29uZmlnKTsKPiA+ICsJaXJvbmxha2Vfc2V0X3BpcGVjb25mKG5ld19jcnRjX3N0YXRlKTsKPiA+ ICAKPiA+ICAJY3J0Yy0+YWN0aXZlID0gdHJ1ZTsKPiA+ICAKPiA+ICAJaW50ZWxfZW5jb2RlcnNf cHJlX2VuYWJsZShzdGF0ZSwgY3J0Yyk7Cj4gPiAgCj4gPiAtCWlmIChwaXBlX2NvbmZpZy0+aGFz X3BjaF9lbmNvZGVyKSB7Cj4gPiArCWlmIChuZXdfY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNvZGVy KSB7Cj4gPiAgCQkvKiBOb3RlOiBGREkgUExMIGVuYWJsaW5nIF9tdXN0XyBiZSBkb25lIGJlZm9y ZSB3ZSBlbmFibGUgdGhlCj4gPiAgCQkgKiBjcHUgcGlwZXMsIGhlbmNlIHRoaXMgaXMgc2VwYXJh dGUgZnJvbSBhbGwgdGhlIG90aGVyIGZkaS9wY2gKPiA+ICAJCSAqIGVuYWJsaW5nLiAqLwo+ID4g LQkJaXJvbmxha2VfZmRpX3BsbF9lbmFibGUocGlwZV9jb25maWcpOwo+ID4gKwkJaXJvbmxha2Vf ZmRpX3BsbF9lbmFibGUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAl9IGVsc2Ugewo+ID4gIAkJYXNz ZXJ0X2ZkaV90eF9kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiAgCQlhc3NlcnRfZmRpX3J4 X2Rpc2FibGVkKGRldl9wcml2LCBwaXBlKTsKPiA+ICAJfQo+ID4gIAo+ID4gLQlpcm9ubGFrZV9w Zml0X2VuYWJsZShwaXBlX2NvbmZpZyk7Cj4gPiArCWlyb25sYWtlX3BmaXRfZW5hYmxlKG5ld19j cnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJLyoKPiA+ICAJICogT24gSUxLKyBMVVQgbXVzdCBiZSBs b2FkZWQgYmVmb3JlIHRoZSBwaXBlIGlzIHJ1bm5pbmcgYnV0IHdpdGgKPiA+ICAJICogY2xvY2tz IGVuYWJsZWQKPiA+ICAJICovCj4gPiAtCWludGVsX2NvbG9yX2xvYWRfbHV0cyhwaXBlX2NvbmZp Zyk7Cj4gPiAtCWludGVsX2NvbG9yX2NvbW1pdChwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2Nv bG9yX2xvYWRfbHV0cyhuZXdfY3J0Y19zdGF0ZSk7Cj4gPiArCWludGVsX2NvbG9yX2NvbW1pdChu ZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCS8qIHVwZGF0ZSBEU1BDTlRSIHRvIGNvbmZpZ3VyZSBnYW1t YSBmb3IgcGlwZSBib3R0b20gY29sb3IgKi8KPiA+IC0JaW50ZWxfZGlzYWJsZV9wcmltYXJ5X3Bs YW5lKHBpcGVfY29uZmlnKTsKPiA+ICsJaW50ZWxfZGlzYWJsZV9wcmltYXJ5X3BsYW5lKG5ld19j cnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0 ZXJtYXJrcykKPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhzdGF0 ZSwgY3J0Yyk7Cj4gPiAtCWludGVsX2VuYWJsZV9waXBlKHBpcGVfY29uZmlnKTsKPiA+ICsJaW50 ZWxfZW5hYmxlX3BpcGUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gLQlpZiAocGlwZV9jb25m aWctPmhhc19wY2hfZW5jb2RlcikKPiA+IC0JCWlyb25sYWtlX3BjaF9lbmFibGUoc3RhdGUsIHBp cGVfY29uZmlnKTsKPiA+ICsJaWYgKG5ld19jcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4g PiArCQlpcm9ubGFrZV9wY2hfZW5hYmxlKHN0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4g PiAtCWludGVsX2NydGNfdmJsYW5rX29uKHBpcGVfY29uZmlnKTsKPiA+ICsJaW50ZWxfY3J0Y192 Ymxhbmtfb24obmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gIAlpbnRlbF9lbmNvZGVyc19lbmFi bGUoc3RhdGUsIGNydGMpOwo+ID4gIAo+ID4gQEAgLTY1NDQsNyArNjU0Myw3IEBAIHN0YXRpYyB2 b2lkIGlyb25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKPiA+ICAJICogc29tZSBpbnRlcmxhY2VkIEhETUkgbW9kZXMuIExldCdzIGRvIHRoZSBk b3VibGUgd2FpdCBhbHdheXMKPiA+ICAJICogaW4gY2FzZSB0aGVyZSBhcmUgbW9yZSBjb3JuZXIg Y2FzZXMgd2UgZG9uJ3Qga25vdyBhYm91dC4KPiA+ICAJICovCj4gPiAtCWlmIChwaXBlX2NvbmZp Zy0+aGFzX3BjaF9lbmNvZGVyKSB7Cj4gPiArCWlmIChuZXdfY3J0Y19zdGF0ZS0+aGFzX3BjaF9l bmNvZGVyKSB7Cj4gPiAgCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOwo+ ID4gIAkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBlKTsKPiA+ICAJfQo+ID4g QEAgLTY1OTEsMTMgKzY1OTAsMTMgQEAgc3RhdGljIHZvaWQgaWNsX3BpcGVfbWJ1c19lbmFibGUo c3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiAgCUk5MTVfV1JJVEUoUElQRV9NQlVTX0RCT1hf Q1RMKHBpcGUpLCB2YWwpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBoYXN3ZWxsX2Ny dGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICtzdGF0 aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdf Y3J0Y19zdGF0ZSwKPiA+ICAJCQkJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g PiAgewo+ID4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9j b25maWctPnVhcGkuY3J0Yyk7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiA+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gPiAgCWVudW0g cGlwZSBwaXBlID0gY3J0Yy0+cGlwZSwgaHN3X3dvcmthcm91bmRfcGlwZTsKPiA+IC0JZW51bSB0 cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyOwo+ ID4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBuZXdfY3J0Y19zdGF0ZS0+Y3B1 X3RyYW5zY29kZXI7Cj4gPiAgCWJvb2wgcHNsX2Nsa2dhdGVfd2E7Cj4gPiAgCj4gPiAgCWlmIChX QVJOX09OKGNydGMtPmFjdGl2ZSkpCj4gPiBAQCAtNjYwNSw2NyArNjYwNCw2NSBAQCBzdGF0aWMg dm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKPiA+ICAKPiA+ICAJaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoc3RhdGUsIGNy dGMpOwo+ID4gIAo+ID4gLQlpZiAocGlwZV9jb25maWctPnNoYXJlZF9kcGxsKQo+ID4gLQkJaW50 ZWxfZW5hYmxlX3NoYXJlZF9kcGxsKHBpcGVfY29uZmlnKTsKPiA+ICsJaWYgKG5ld19jcnRjX3N0 YXRlLT5zaGFyZWRfZHBsbCkKPiA+ICsJCWludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChuZXdfY3J0 Y19zdGF0ZSk7Cj4gPiAgCj4gPiAgCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoc3RhdGUsIGNy dGMpOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihwaXBlX2NvbmZp ZykpCj4gPiAtCQlpbnRlbF9kcF9zZXRfbV9uKHBpcGVfY29uZmlnLCBNMV9OMSk7Cj4gPiArCWlm IChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKG5ld19jcnRjX3N0YXRlKSkKPiA+ICsJCWludGVs X2RwX3NldF9tX24obmV3X2NydGNfc3RhdGUsIE0xX04xKTsKPiA+ICAKPiA+ICAJaWYgKCF0cmFu c2NvZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpCj4gPiAtCQlpbnRlbF9zZXRfcGlwZV90aW1p bmdzKHBpcGVfY29uZmlnKTsKPiA+ICsJCWludGVsX3NldF9waXBlX3RpbWluZ3MobmV3X2NydGNf c3RhdGUpOwo+ID4gIAo+ID4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPiA+IC0J CWljbF9lbmFibGVfdHJhbnNfcG9ydF9zeW5jKHBpcGVfY29uZmlnKTsKPiA+ICsJCWljbF9lbmFi bGVfdHJhbnNfcG9ydF9zeW5jKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+IC0JaW50ZWxfc2V0 X3BpcGVfc3JjX3NpemUocGlwZV9jb25maWcpOwo+ID4gKwlpbnRlbF9zZXRfcGlwZV9zcmNfc2l6 ZShuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiAgCWlmIChjcHVfdHJhbnNjb2RlciAhPSBUUkFO U0NPREVSX0VEUCAmJgo+ID4gLQkgICAgIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVy KSkgewo+ID4gKwkgICAgIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkKPiA+ICAJ CUk5MTVfV1JJVEUoUElQRV9NVUxUKGNwdV90cmFuc2NvZGVyKSwKPiA+IC0JCQkgICBwaXBlX2Nv bmZpZy0+cGl4ZWxfbXVsdGlwbGllciAtIDEpOwo+ID4gLQl9Cj4gPiArCQkJICAgbmV3X2NydGNf c3RhdGUtPnBpeGVsX211bHRpcGxpZXIgLSAxKTsKPiA+ICAKPiA+IC0JaWYgKHBpcGVfY29uZmln LT5oYXNfcGNoX2VuY29kZXIpIHsKPiA+IC0JCWludGVsX2NwdV90cmFuc2NvZGVyX3NldF9tX24o cGlwZV9jb25maWcsCj4gPiAtCQkJCQkgICAgICZwaXBlX2NvbmZpZy0+ZmRpX21fbiwgTlVMTCk7 Cj4gPiAtCX0KPiA+ICsJaWYgKG5ld19jcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4gPiAr CQlpbnRlbF9jcHVfdHJhbnNjb2Rlcl9zZXRfbV9uKG5ld19jcnRjX3N0YXRlLAo+ID4gKwkJCQkJ ICAgICAmbmV3X2NydGNfc3RhdGUtPmZkaV9tX24sIE5VTEwpOwo+ID4gIAo+ID4gIAlpZiAoIXRy YW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkKPiA+IC0JCWhhc3dlbGxfc2V0X3BpcGVj b25mKHBpcGVfY29uZmlnKTsKPiA+ICsJCWhhc3dlbGxfc2V0X3BpcGVjb25mKG5ld19jcnRjX3N0 YXRlKTsKPiA+ICAKPiA+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSB8fCBJU19CUk9B RFdFTEwoZGV2X3ByaXYpKQo+ID4gLQkJYmR3X3NldF9waXBlbWlzYyhwaXBlX2NvbmZpZyk7Cj4g PiArCQliZHdfc2V0X3BpcGVtaXNjKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJY3J0Yy0+ YWN0aXZlID0gdHJ1ZTsKPiA+ICAKPiA+ICAJLyogRGlzcGxheSBXQSAjMTE4MDogV2FEaXNhYmxl U2NhbGFyQ2xvY2tHYXRpbmc6IGdsaywgY25sICovCj4gPiAgCXBzbF9jbGtnYXRlX3dhID0gKElT X0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSAmJgo+ID4g LQkJCSBwaXBlX2NvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZDsKPiA+ICsJCW5ld19jcnRjX3N0YXRl LT5wY2hfcGZpdC5lbmFibGVkOwo+ID4gIAlpZiAocHNsX2Nsa2dhdGVfd2EpCj4gPiAgCQlnbGtf cGlwZV9zY2FsZXJfY2xvY2tfZ2F0aW5nX3dhKGRldl9wcml2LCBwaXBlLCB0cnVlKTsKPiA+ICAK PiA+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiA+IC0JCXNreWxha2VfcGZpdF9l bmFibGUocGlwZV9jb25maWcpOwo+ID4gKwkJc2t5bGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19z dGF0ZSk7Cj4gPiAgCWVsc2UKPiA+IC0JCWlyb25sYWtlX3BmaXRfZW5hYmxlKHBpcGVfY29uZmln KTsKPiA+ICsJCWlyb25sYWtlX3BmaXRfZW5hYmxlKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+ ICAJLyoKPiA+ICAJICogT24gSUxLKyBMVVQgbXVzdCBiZSBsb2FkZWQgYmVmb3JlIHRoZSBwaXBl IGlzIHJ1bm5pbmcgYnV0IHdpdGgKPiA+ICAJICogY2xvY2tzIGVuYWJsZWQKPiA+ICAJICovCj4g PiAtCWludGVsX2NvbG9yX2xvYWRfbHV0cyhwaXBlX2NvbmZpZyk7Cj4gPiAtCWludGVsX2NvbG9y X2NvbW1pdChwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2NvbG9yX2xvYWRfbHV0cyhuZXdfY3J0 Y19zdGF0ZSk7Cj4gPiArCWludGVsX2NvbG9yX2NvbW1pdChuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAg CS8qIHVwZGF0ZSBEU1BDTlRSIHRvIGNvbmZpZ3VyZSBnYW1tYS9jc2MgZm9yIHBpcGUgYm90dG9t IGNvbG9yICovCj4gPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKPiA+IC0JCWludGVs X2Rpc2FibGVfcHJpbWFyeV9wbGFuZShwaXBlX2NvbmZpZyk7Cj4gPiArCQlpbnRlbF9kaXNhYmxl X3ByaW1hcnlfcGxhbmUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkKPiA+ICAJCWljbF9zZXRfcGlwZV9jaGlja2VuKGNydGMpOwo+ID4g IAo+ID4gIAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkKPiA+IC0JCWlu dGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKHBpcGVfY29uZmlnKTsKPiA+ICsJCWludGVs X2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJ aWYgKGRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcykKPiA+ICAJCWRldl9wcml2 LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhzdGF0ZSwgY3J0Yyk7Cj4gPiBAQCAtNjY3NSwx NSArNjY3MiwxNSBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICAKPiA+ICAJLyogWFhYOiBEbyB0aGUgcGlw ZSBhc3NlcnRpb25zIGF0IHRoZSByaWdodCBwbGFjZSBmb3IgQlhUIERTSS4gKi8KPiA+ICAJaWYg KCF0cmFuc2NvZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpCj4gPiAtCQlpbnRlbF9lbmFibGVf cGlwZShwaXBlX2NvbmZpZyk7Cj4gPiArCQlpbnRlbF9lbmFibGVfcGlwZShuZXdfY3J0Y19zdGF0 ZSk7Cj4gPiAgCj4gPiAtCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKQo+ID4gLQkJ bHB0X3BjaF9lbmFibGUoc3RhdGUsIHBpcGVfY29uZmlnKTsKPiA+ICsJaWYgKG5ld19jcnRjX3N0 YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4gPiArCQlscHRfcGNoX2VuYWJsZShzdGF0ZSwgbmV3X2Ny dGNfc3RhdGUpOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShwaXBlX2NvbmZp ZywgSU5URUxfT1VUUFVUX0RQX01TVCkpCj4gPiAtCQlpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRf YWxsb2MocGlwZV9jb25maWcsIHRydWUpOwo+ID4gKwlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShu ZXdfY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RQX01TVCkpCj4gPiArCQlpbnRlbF9kZGlfc2V0 X3ZjX3BheWxvYWRfYWxsb2MobmV3X2NydGNfc3RhdGUsIHRydWUpOwo+ID4gIAo+ID4gLQlpbnRl bF9jcnRjX3ZibGFua19vbihwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2NydGNfdmJsYW5rX29u KG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKHN0YXRl LCBjcnRjKTsKPiA+ICAKPiA+IEBAIC02Njk0LDcgKzY2OTEsNyBAQCBzdGF0aWMgdm9pZCBoYXN3 ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ ICAKPiA+ICAJLyogSWYgd2UgY2hhbmdlIHRoZSByZWxhdGl2ZSBvcmRlciBiZXR3ZWVuIHBpcGUv cGxhbmVzIGVuYWJsaW5nLCB3ZSBuZWVkCj4gPiAgCSAqIHRvIGNoYW5nZSB0aGUgd29ya2Fyb3Vu ZC4gKi8KPiA+IC0JaHN3X3dvcmthcm91bmRfcGlwZSA9IHBpcGVfY29uZmlnLT5oc3dfd29ya2Fy b3VuZF9waXBlOwo+ID4gKwloc3dfd29ya2Fyb3VuZF9waXBlID0gbmV3X2NydGNfc3RhdGUtPmhz d193b3JrYXJvdW5kX3BpcGU7Cj4gPiAgCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBoc3df d29ya2Fyb3VuZF9waXBlICE9IElOVkFMSURfUElQRSkgewo+ID4gIAkJaW50ZWxfd2FpdF9mb3Jf dmJsYW5rKGRldl9wcml2LCBoc3dfd29ya2Fyb3VuZF9waXBlKTsKPiA+ICAJCWludGVsX3dhaXRf Zm9yX3ZibGFuayhkZXZfcHJpdiwgaHN3X3dvcmthcm91bmRfcGlwZSk7Cj4gPiBAQCAtNzAwNywy OCArNzAwNCwyOCBAQCBzdGF0aWMgdm9pZCBtb2Rlc2V0X3B1dF9wb3dlcl9kb21haW5zKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCWludGVsX2Rpc3BsYXlfcG93ZXJf cHV0X3VuY2hlY2tlZChkZXZfcHJpdiwgZG9tYWluKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGlj IHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCj4gPiArc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUsCj4gPiAgCQkJCSAgIHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwo+ID4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwo+ID4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiAgCj4g PiAgCWlmIChXQVJOX09OKGNydGMtPmFjdGl2ZSkpCj4gPiAgCQlyZXR1cm47Cj4gPiAgCj4gPiAt CWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKHBpcGVfY29uZmlnKSkKPiA+IC0JCWludGVs X2RwX3NldF9tX24ocGlwZV9jb25maWcsIE0xX04xKTsKPiA+ICsJaWYgKGludGVsX2NydGNfaGFz X2RwX2VuY29kZXIobmV3X2NydGNfc3RhdGUpKQo+ID4gKwkJaW50ZWxfZHBfc2V0X21fbihuZXdf Y3J0Y19zdGF0ZSwgTTFfTjEpOwo+ID4gIAo+ID4gLQlpbnRlbF9zZXRfcGlwZV90aW1pbmdzKHBp cGVfY29uZmlnKTsKPiA+IC0JaW50ZWxfc2V0X3BpcGVfc3JjX3NpemUocGlwZV9jb25maWcpOwo+ ID4gKwlpbnRlbF9zZXRfcGlwZV90aW1pbmdzKG5ld19jcnRjX3N0YXRlKTsKPiA+ICsJaW50ZWxf c2V0X3BpcGVfc3JjX3NpemUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gIAlpZiAoSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikgJiYgcGlwZSA9PSBQSVBFX0IpIHsKPiA+ICAJCUk5MTVfV1JJVEUo Q0hWX0JMRU5EKHBpcGUpLCBDSFZfQkxFTkRfTEVHQUNZKTsKPiA+ICAJCUk5MTVfV1JJVEUoQ0hW X0NBTlZBUyhwaXBlKSwgMCk7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JaTl4eF9zZXRfcGlwZWNvbmYo cGlwZV9jb25maWcpOwo+ID4gKwlpOXh4X3NldF9waXBlY29uZihuZXdfY3J0Y19zdGF0ZSk7Cj4g PiAgCj4gPiAgCWNydGMtPmFjdGl2ZSA9IHRydWU7Cj4gPiAgCj4gPiBAQCAtNzAzNywyNiArNzAz NCwyNiBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICAJaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFi bGUoc3RhdGUsIGNydGMpOwo+ID4gIAo+ID4gIAlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikp IHsKPiA+IC0JCWNodl9wcmVwYXJlX3BsbChjcnRjLCBwaXBlX2NvbmZpZyk7Cj4gPiAtCQljaHZf ZW5hYmxlX3BsbChjcnRjLCBwaXBlX2NvbmZpZyk7Cj4gPiArCQljaHZfcHJlcGFyZV9wbGwoY3J0 YywgbmV3X2NydGNfc3RhdGUpOwo+ID4gKwkJY2h2X2VuYWJsZV9wbGwoY3J0YywgbmV3X2NydGNf c3RhdGUpOwo+ID4gIAl9IGVsc2Ugewo+ID4gLQkJdmx2X3ByZXBhcmVfcGxsKGNydGMsIHBpcGVf Y29uZmlnKTsKPiA+IC0JCXZsdl9lbmFibGVfcGxsKGNydGMsIHBpcGVfY29uZmlnKTsKPiA+ICsJ CXZsdl9wcmVwYXJlX3BsbChjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gPiArCQl2bHZfZW5hYmxl X3BsbChjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJaW50ZWxfZW5j b2RlcnNfcHJlX2VuYWJsZShzdGF0ZSwgY3J0Yyk7Cj4gPiAgCj4gPiAtCWk5eHhfcGZpdF9lbmFi bGUocGlwZV9jb25maWcpOwo+ID4gKwlpOXh4X3BmaXRfZW5hYmxlKG5ld19jcnRjX3N0YXRlKTsK PiA+ICAKPiA+IC0JaW50ZWxfY29sb3JfbG9hZF9sdXRzKHBpcGVfY29uZmlnKTsKPiA+IC0JaW50 ZWxfY29sb3JfY29tbWl0KHBpcGVfY29uZmlnKTsKPiA+ICsJaW50ZWxfY29sb3JfbG9hZF9sdXRz KG5ld19jcnRjX3N0YXRlKTsKPiA+ICsJaW50ZWxfY29sb3JfY29tbWl0KG5ld19jcnRjX3N0YXRl KTsKPiA+ICAJLyogdXBkYXRlIERTUENOVFIgdG8gY29uZmlndXJlIGdhbW1hIGZvciBwaXBlIGJv dHRvbSBjb2xvciAqLwo+ID4gLQlpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUocGlwZV9jb25m aWcpOwo+ID4gKwlpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUobmV3X2NydGNfc3RhdGUpOwo+ ID4gIAo+ID4gIAlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3Moc3RhdGUsIGNy dGMpOwo+ID4gLQlpbnRlbF9lbmFibGVfcGlwZShwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2Vu YWJsZV9waXBlKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+IC0JaW50ZWxfY3J0Y192Ymxhbmtf b24ocGlwZV9jb25maWcpOwo+ID4gKwlpbnRlbF9jcnRjX3ZibGFua19vbihuZXdfY3J0Y19zdGF0 ZSk7Cj4gPiAgCj4gPiAgCWludGVsX2VuY29kZXJzX2VuYWJsZShzdGF0ZSwgY3J0Yyk7Cj4gPiAg fQo+ID4gQEAgLTcwNzAsMjUgKzcwNjcsMjUgQEAgc3RhdGljIHZvaWQgaTl4eF9zZXRfcGxsX2Rp dmlkZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gIAlJ OTE1X1dSSVRFKEZQMShjcnRjLT5waXBlKSwgY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5mcDEp Owo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBpOXh4X2NydGNfZW5hYmxlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICtzdGF0aWMgdm9pZCBpOXh4X2NydGNf ZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSwKPiA+ICAJCQkg ICAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIHsKPiA+IC0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMp Owo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNf c3RhdGUtPnVhcGkuY3J0Yyk7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7Cj4gPiAgCj4gPiAgCWlmIChXQVJOX09OKGNydGMtPmFjdGl2ZSkpCj4gPiAgCQlyZXR1 cm47Cj4gPiAgCj4gPiAtCWk5eHhfc2V0X3BsbF9kaXZpZGVycyhwaXBlX2NvbmZpZyk7Cj4gPiAr CWk5eHhfc2V0X3BsbF9kaXZpZGVycyhuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiAtCWlmIChp bnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKHBpcGVfY29uZmlnKSkKPiA+IC0JCWludGVsX2RwX3Nl dF9tX24ocGlwZV9jb25maWcsIE0xX04xKTsKPiA+ICsJaWYgKGludGVsX2NydGNfaGFzX2RwX2Vu Y29kZXIobmV3X2NydGNfc3RhdGUpKQo+ID4gKwkJaW50ZWxfZHBfc2V0X21fbihuZXdfY3J0Y19z dGF0ZSwgTTFfTjEpOwo+ID4gIAo+ID4gLQlpbnRlbF9zZXRfcGlwZV90aW1pbmdzKHBpcGVfY29u ZmlnKTsKPiA+IC0JaW50ZWxfc2V0X3BpcGVfc3JjX3NpemUocGlwZV9jb25maWcpOwo+ID4gKwlp bnRlbF9zZXRfcGlwZV90aW1pbmdzKG5ld19jcnRjX3N0YXRlKTsKPiA+ICsJaW50ZWxfc2V0X3Bp cGVfc3JjX3NpemUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gLQlpOXh4X3NldF9waXBlY29u ZihwaXBlX2NvbmZpZyk7Cj4gPiArCWk5eHhfc2V0X3BpcGVjb25mKG5ld19jcnRjX3N0YXRlKTsK PiA+ICAKPiA+ICAJY3J0Yy0+YWN0aXZlID0gdHJ1ZTsKPiA+ICAKPiA+IEBAIC03MDk3LDIyICs3 MDk0LDIyIEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gIAo+ID4gIAlpbnRlbF9lbmNvZGVyc19wcmVfZW5hYmxl KHN0YXRlLCBjcnRjKTsKPiA+ICAKPiA+IC0JaTl4eF9lbmFibGVfcGxsKGNydGMsIHBpcGVfY29u ZmlnKTsKPiA+ICsJaTl4eF9lbmFibGVfcGxsKGNydGMsIG5ld19jcnRjX3N0YXRlKTsKPiA+ICAK PiA+IC0JaTl4eF9wZml0X2VuYWJsZShwaXBlX2NvbmZpZyk7Cj4gPiArCWk5eHhfcGZpdF9lbmFi bGUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gLQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMocGlw ZV9jb25maWcpOwo+ID4gLQlpbnRlbF9jb2xvcl9jb21taXQocGlwZV9jb25maWcpOwo+ID4gKwlp bnRlbF9jb2xvcl9sb2FkX2x1dHMobmV3X2NydGNfc3RhdGUpOwo+ID4gKwlpbnRlbF9jb2xvcl9j b21taXQobmV3X2NydGNfc3RhdGUpOwo+ID4gIAkvKiB1cGRhdGUgRFNQQ05UUiB0byBjb25maWd1 cmUgZ2FtbWEgZm9yIHBpcGUgYm90dG9tIGNvbG9yICovCj4gPiAtCWludGVsX2Rpc2FibGVfcHJp bWFyeV9wbGFuZShwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFu ZShuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5pbml0 aWFsX3dhdGVybWFya3MpCj4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFy a3Moc3RhdGUsIGNydGMpOwo+ID4gIAllbHNlCj4gPiAgCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJr cyhjcnRjKTsKPiA+IC0JaW50ZWxfZW5hYmxlX3BpcGUocGlwZV9jb25maWcpOwo+ID4gKwlpbnRl bF9lbmFibGVfcGlwZShuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiAtCWludGVsX2NydGNfdmJs YW5rX29uKHBpcGVfY29uZmlnKTsKPiA+ICsJaW50ZWxfY3J0Y192Ymxhbmtfb24obmV3X2NydGNf c3RhdGUpOwo+ID4gIAo+ID4gIAlpbnRlbF9lbmNvZGVyc19lbmFibGUoc3RhdGUsIGNydGMpOwo+ ID4gIH0KPiA+IC0tIAo+ID4gMi4yMy4wCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20968C432C3 for ; Fri, 15 Nov 2019 15:16:25 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EF4FD20733 for ; Fri, 15 Nov 2019 15:16:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EF4FD20733 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9189A6E830; Fri, 15 Nov 2019 15:16:24 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 611776E841 for ; Fri, 15 Nov 2019 15:16:21 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Nov 2019 07:15:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,308,1569308400"; d="scan'208";a="236101419" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by fmsmga002.fm.intel.com with SMTP; 15 Nov 2019 07:15:38 -0800 Received: by stinkbox (sSMTP sendmail emulation); Fri, 15 Nov 2019 17:15:36 +0200 Date: Fri, 15 Nov 2019 17:15:36 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Manasi Navare Message-ID: <20191115151536.GE1208@intel.com> References: <20191112141503.1116-1-ville.syrjala@linux.intel.com> <20191112141503.1116-10-ville.syrjala@linux.intel.com> <20191114003547.GJ28227@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191114003547.GJ28227@intel.com> User-Agent: Mutt/1.10.1 (2018-07-13) Subject: Re: [Intel-gfx] [PATCH 09/10] drm/i915: s/pipe_config/new_crtc_state/ in .crtc_enable() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191115151536.Pu6r4cUYVJFaVLbdHZySZXMTmR21-0y8w0uO3LKPgBA@z> T24gV2VkLCBOb3YgMTMsIDIwMTkgYXQgMDQ6MzU6NDdQTSAtMDgwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBUdWUsIE5vdiAxMiwgMjAxOSBhdCAwNDoxNTowMlBNICswMjAwLCBWaWxsZSBT eXJqYWxhIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IAo+ID4gUmVuYW1lIHBpcGVfY29uZmlnIHRvIG5ld19jcnRjX3N0 YXRlIGluIHRoZSAuY3J0Y19lbmFibGUoKSBob29rcy4KPiA+IFRoZSAncGlwZV9jb25maWcnIG5h bWUgaXMgYSB6b21iaWUgdGhhdCB3ZSBuZWVkIHRvIGZpbmFsbHkgcHV0IGRvd24uCj4gCj4gU28g YmFzaWNhbGx5IHVzZSBwaXBlX2NvbmZpZyBvbmx5IGluIGF0b21pYyBjaGVjayBmdW5jdGlvbnMK PiBsaWtlIGNvbXB1dGVfY29uZmlnKCkgZXRjIGFuZCB0aGVuIGFsbCBhdG9taWMgY29tbWl0IGhv b2tzIHJlcGxhY2UgdGhhdAo+IHdpdGggbmV3X2NydGNfc3RhdGUgPwoKTm8uICdwaXBlX2NvbmZp Zycgc2hvdWxkIGJlIGRpc2FwcGVhcmVkIGVudGlyZWx5LgoKPiAKPiBSZXBsYWNlbWVudHMgYmVs b3cgbG9vayBnb29kLAo+IAo+IFJldmlld2VkLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5u YXZhcmVAaW50ZWwuY29tPgo+IAo+IE1hbmFzaQo+IAo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgfCAxNzUgKysr KysrKysrLS0tLS0tLS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA4 OSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IGIwOTFiOTJhNjc3Yy4uMTE5NTNmZTA2NDg4IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4g PiBAQCAtNjQ2MCwxMCArNjQ2MCwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3ByaW1h cnlfcGxhbmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdAo+ID4gIAlw bGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFuZSwgY3J0Y19zdGF0ZSk7Cj4gPiAgfQo+ID4gIAo+ID4g LXN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZywKPiA+ICtzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUsCj4gPiAgCQkJCSBzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKPiA+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNy dGMpOwo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmJhc2UuZGV2KTsKPiA+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gIAo+ ID4gQEAgLTY0ODMsNTUgKzY0ODMsNTQgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFi bGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gIAlpbnRlbF9zZXRf Y3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCBmYWxzZSk7Cj4gPiAg CWludGVsX3NldF9wY2hfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZh bHNlKTsKPiA+ICAKPiA+IC0JaWYgKHBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCj4gPiAt CQlpbnRlbF9wcmVwYXJlX3NoYXJlZF9kcGxsKHBpcGVfY29uZmlnKTsKPiA+ICsJaWYgKG5ld19j cnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4gPiArCQlpbnRlbF9wcmVwYXJlX3NoYXJlZF9k cGxsKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+IC0JaWYgKGludGVsX2NydGNfaGFzX2RwX2Vu Y29kZXIocGlwZV9jb25maWcpKQo+ID4gLQkJaW50ZWxfZHBfc2V0X21fbihwaXBlX2NvbmZpZywg TTFfTjEpOwo+ID4gKwlpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihuZXdfY3J0Y19zdGF0 ZSkpCj4gPiArCQlpbnRlbF9kcF9zZXRfbV9uKG5ld19jcnRjX3N0YXRlLCBNMV9OMSk7Cj4gPiAg Cj4gPiAtCWludGVsX3NldF9waXBlX3RpbWluZ3MocGlwZV9jb25maWcpOwo+ID4gLQlpbnRlbF9z ZXRfcGlwZV9zcmNfc2l6ZShwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX3NldF9waXBlX3RpbWlu Z3MobmV3X2NydGNfc3RhdGUpOwo+ID4gKwlpbnRlbF9zZXRfcGlwZV9zcmNfc2l6ZShuZXdfY3J0 Y19zdGF0ZSk7Cj4gPiAgCj4gPiAtCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7 Cj4gPiAtCQlpbnRlbF9jcHVfdHJhbnNjb2Rlcl9zZXRfbV9uKHBpcGVfY29uZmlnLAo+ID4gLQkJ CQkJICAgICAmcGlwZV9jb25maWctPmZkaV9tX24sIE5VTEwpOwo+ID4gLQl9Cj4gPiArCWlmIChu ZXdfY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNvZGVyKQo+ID4gKwkJaW50ZWxfY3B1X3RyYW5zY29k ZXJfc2V0X21fbihuZXdfY3J0Y19zdGF0ZSwKPiA+ICsJCQkJCSAgICAgJm5ld19jcnRjX3N0YXRl LT5mZGlfbV9uLCBOVUxMKTsKPiA+ICAKPiA+IC0JaXJvbmxha2Vfc2V0X3BpcGVjb25mKHBpcGVf Y29uZmlnKTsKPiA+ICsJaXJvbmxha2Vfc2V0X3BpcGVjb25mKG5ld19jcnRjX3N0YXRlKTsKPiA+ ICAKPiA+ICAJY3J0Yy0+YWN0aXZlID0gdHJ1ZTsKPiA+ICAKPiA+ICAJaW50ZWxfZW5jb2RlcnNf cHJlX2VuYWJsZShzdGF0ZSwgY3J0Yyk7Cj4gPiAgCj4gPiAtCWlmIChwaXBlX2NvbmZpZy0+aGFz X3BjaF9lbmNvZGVyKSB7Cj4gPiArCWlmIChuZXdfY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNvZGVy KSB7Cj4gPiAgCQkvKiBOb3RlOiBGREkgUExMIGVuYWJsaW5nIF9tdXN0XyBiZSBkb25lIGJlZm9y ZSB3ZSBlbmFibGUgdGhlCj4gPiAgCQkgKiBjcHUgcGlwZXMsIGhlbmNlIHRoaXMgaXMgc2VwYXJh dGUgZnJvbSBhbGwgdGhlIG90aGVyIGZkaS9wY2gKPiA+ICAJCSAqIGVuYWJsaW5nLiAqLwo+ID4g LQkJaXJvbmxha2VfZmRpX3BsbF9lbmFibGUocGlwZV9jb25maWcpOwo+ID4gKwkJaXJvbmxha2Vf ZmRpX3BsbF9lbmFibGUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAl9IGVsc2Ugewo+ID4gIAkJYXNz ZXJ0X2ZkaV90eF9kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiAgCQlhc3NlcnRfZmRpX3J4 X2Rpc2FibGVkKGRldl9wcml2LCBwaXBlKTsKPiA+ICAJfQo+ID4gIAo+ID4gLQlpcm9ubGFrZV9w Zml0X2VuYWJsZShwaXBlX2NvbmZpZyk7Cj4gPiArCWlyb25sYWtlX3BmaXRfZW5hYmxlKG5ld19j cnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJLyoKPiA+ICAJICogT24gSUxLKyBMVVQgbXVzdCBiZSBs b2FkZWQgYmVmb3JlIHRoZSBwaXBlIGlzIHJ1bm5pbmcgYnV0IHdpdGgKPiA+ICAJICogY2xvY2tz IGVuYWJsZWQKPiA+ICAJICovCj4gPiAtCWludGVsX2NvbG9yX2xvYWRfbHV0cyhwaXBlX2NvbmZp Zyk7Cj4gPiAtCWludGVsX2NvbG9yX2NvbW1pdChwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2Nv bG9yX2xvYWRfbHV0cyhuZXdfY3J0Y19zdGF0ZSk7Cj4gPiArCWludGVsX2NvbG9yX2NvbW1pdChu ZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCS8qIHVwZGF0ZSBEU1BDTlRSIHRvIGNvbmZpZ3VyZSBnYW1t YSBmb3IgcGlwZSBib3R0b20gY29sb3IgKi8KPiA+IC0JaW50ZWxfZGlzYWJsZV9wcmltYXJ5X3Bs YW5lKHBpcGVfY29uZmlnKTsKPiA+ICsJaW50ZWxfZGlzYWJsZV9wcmltYXJ5X3BsYW5lKG5ld19j cnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0 ZXJtYXJrcykKPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhzdGF0 ZSwgY3J0Yyk7Cj4gPiAtCWludGVsX2VuYWJsZV9waXBlKHBpcGVfY29uZmlnKTsKPiA+ICsJaW50 ZWxfZW5hYmxlX3BpcGUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gLQlpZiAocGlwZV9jb25m aWctPmhhc19wY2hfZW5jb2RlcikKPiA+IC0JCWlyb25sYWtlX3BjaF9lbmFibGUoc3RhdGUsIHBp cGVfY29uZmlnKTsKPiA+ICsJaWYgKG5ld19jcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4g PiArCQlpcm9ubGFrZV9wY2hfZW5hYmxlKHN0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4g PiAtCWludGVsX2NydGNfdmJsYW5rX29uKHBpcGVfY29uZmlnKTsKPiA+ICsJaW50ZWxfY3J0Y192 Ymxhbmtfb24obmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gIAlpbnRlbF9lbmNvZGVyc19lbmFi bGUoc3RhdGUsIGNydGMpOwo+ID4gIAo+ID4gQEAgLTY1NDQsNyArNjU0Myw3IEBAIHN0YXRpYyB2 b2lkIGlyb25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKPiA+ICAJICogc29tZSBpbnRlcmxhY2VkIEhETUkgbW9kZXMuIExldCdzIGRvIHRoZSBk b3VibGUgd2FpdCBhbHdheXMKPiA+ICAJICogaW4gY2FzZSB0aGVyZSBhcmUgbW9yZSBjb3JuZXIg Y2FzZXMgd2UgZG9uJ3Qga25vdyBhYm91dC4KPiA+ICAJICovCj4gPiAtCWlmIChwaXBlX2NvbmZp Zy0+aGFzX3BjaF9lbmNvZGVyKSB7Cj4gPiArCWlmIChuZXdfY3J0Y19zdGF0ZS0+aGFzX3BjaF9l bmNvZGVyKSB7Cj4gPiAgCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOwo+ ID4gIAkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBlKTsKPiA+ICAJfQo+ID4g QEAgLTY1OTEsMTMgKzY1OTAsMTMgQEAgc3RhdGljIHZvaWQgaWNsX3BpcGVfbWJ1c19lbmFibGUo c3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiAgCUk5MTVfV1JJVEUoUElQRV9NQlVTX0RCT1hf Q1RMKHBpcGUpLCB2YWwpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBoYXN3ZWxsX2Ny dGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICtzdGF0 aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdf Y3J0Y19zdGF0ZSwKPiA+ICAJCQkJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g PiAgewo+ID4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9j b25maWctPnVhcGkuY3J0Yyk7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiA+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gPiAgCWVudW0g cGlwZSBwaXBlID0gY3J0Yy0+cGlwZSwgaHN3X3dvcmthcm91bmRfcGlwZTsKPiA+IC0JZW51bSB0 cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyOwo+ ID4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBuZXdfY3J0Y19zdGF0ZS0+Y3B1 X3RyYW5zY29kZXI7Cj4gPiAgCWJvb2wgcHNsX2Nsa2dhdGVfd2E7Cj4gPiAgCj4gPiAgCWlmIChX QVJOX09OKGNydGMtPmFjdGl2ZSkpCj4gPiBAQCAtNjYwNSw2NyArNjYwNCw2NSBAQCBzdGF0aWMg dm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKPiA+ICAKPiA+ICAJaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoc3RhdGUsIGNy dGMpOwo+ID4gIAo+ID4gLQlpZiAocGlwZV9jb25maWctPnNoYXJlZF9kcGxsKQo+ID4gLQkJaW50 ZWxfZW5hYmxlX3NoYXJlZF9kcGxsKHBpcGVfY29uZmlnKTsKPiA+ICsJaWYgKG5ld19jcnRjX3N0 YXRlLT5zaGFyZWRfZHBsbCkKPiA+ICsJCWludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChuZXdfY3J0 Y19zdGF0ZSk7Cj4gPiAgCj4gPiAgCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoc3RhdGUsIGNy dGMpOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihwaXBlX2NvbmZp ZykpCj4gPiAtCQlpbnRlbF9kcF9zZXRfbV9uKHBpcGVfY29uZmlnLCBNMV9OMSk7Cj4gPiArCWlm IChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKG5ld19jcnRjX3N0YXRlKSkKPiA+ICsJCWludGVs X2RwX3NldF9tX24obmV3X2NydGNfc3RhdGUsIE0xX04xKTsKPiA+ICAKPiA+ICAJaWYgKCF0cmFu c2NvZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpCj4gPiAtCQlpbnRlbF9zZXRfcGlwZV90aW1p bmdzKHBpcGVfY29uZmlnKTsKPiA+ICsJCWludGVsX3NldF9waXBlX3RpbWluZ3MobmV3X2NydGNf c3RhdGUpOwo+ID4gIAo+ID4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPiA+IC0J CWljbF9lbmFibGVfdHJhbnNfcG9ydF9zeW5jKHBpcGVfY29uZmlnKTsKPiA+ICsJCWljbF9lbmFi bGVfdHJhbnNfcG9ydF9zeW5jKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+IC0JaW50ZWxfc2V0 X3BpcGVfc3JjX3NpemUocGlwZV9jb25maWcpOwo+ID4gKwlpbnRlbF9zZXRfcGlwZV9zcmNfc2l6 ZShuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiAgCWlmIChjcHVfdHJhbnNjb2RlciAhPSBUUkFO U0NPREVSX0VEUCAmJgo+ID4gLQkgICAgIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVy KSkgewo+ID4gKwkgICAgIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkKPiA+ICAJ CUk5MTVfV1JJVEUoUElQRV9NVUxUKGNwdV90cmFuc2NvZGVyKSwKPiA+IC0JCQkgICBwaXBlX2Nv bmZpZy0+cGl4ZWxfbXVsdGlwbGllciAtIDEpOwo+ID4gLQl9Cj4gPiArCQkJICAgbmV3X2NydGNf c3RhdGUtPnBpeGVsX211bHRpcGxpZXIgLSAxKTsKPiA+ICAKPiA+IC0JaWYgKHBpcGVfY29uZmln LT5oYXNfcGNoX2VuY29kZXIpIHsKPiA+IC0JCWludGVsX2NwdV90cmFuc2NvZGVyX3NldF9tX24o cGlwZV9jb25maWcsCj4gPiAtCQkJCQkgICAgICZwaXBlX2NvbmZpZy0+ZmRpX21fbiwgTlVMTCk7 Cj4gPiAtCX0KPiA+ICsJaWYgKG5ld19jcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4gPiAr CQlpbnRlbF9jcHVfdHJhbnNjb2Rlcl9zZXRfbV9uKG5ld19jcnRjX3N0YXRlLAo+ID4gKwkJCQkJ ICAgICAmbmV3X2NydGNfc3RhdGUtPmZkaV9tX24sIE5VTEwpOwo+ID4gIAo+ID4gIAlpZiAoIXRy YW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkKPiA+IC0JCWhhc3dlbGxfc2V0X3BpcGVj b25mKHBpcGVfY29uZmlnKTsKPiA+ICsJCWhhc3dlbGxfc2V0X3BpcGVjb25mKG5ld19jcnRjX3N0 YXRlKTsKPiA+ICAKPiA+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSB8fCBJU19CUk9B RFdFTEwoZGV2X3ByaXYpKQo+ID4gLQkJYmR3X3NldF9waXBlbWlzYyhwaXBlX2NvbmZpZyk7Cj4g PiArCQliZHdfc2V0X3BpcGVtaXNjKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJY3J0Yy0+ YWN0aXZlID0gdHJ1ZTsKPiA+ICAKPiA+ICAJLyogRGlzcGxheSBXQSAjMTE4MDogV2FEaXNhYmxl U2NhbGFyQ2xvY2tHYXRpbmc6IGdsaywgY25sICovCj4gPiAgCXBzbF9jbGtnYXRlX3dhID0gKElT X0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSAmJgo+ID4g LQkJCSBwaXBlX2NvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZDsKPiA+ICsJCW5ld19jcnRjX3N0YXRl LT5wY2hfcGZpdC5lbmFibGVkOwo+ID4gIAlpZiAocHNsX2Nsa2dhdGVfd2EpCj4gPiAgCQlnbGtf cGlwZV9zY2FsZXJfY2xvY2tfZ2F0aW5nX3dhKGRldl9wcml2LCBwaXBlLCB0cnVlKTsKPiA+ICAK PiA+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiA+IC0JCXNreWxha2VfcGZpdF9l bmFibGUocGlwZV9jb25maWcpOwo+ID4gKwkJc2t5bGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19z dGF0ZSk7Cj4gPiAgCWVsc2UKPiA+IC0JCWlyb25sYWtlX3BmaXRfZW5hYmxlKHBpcGVfY29uZmln KTsKPiA+ICsJCWlyb25sYWtlX3BmaXRfZW5hYmxlKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+ ICAJLyoKPiA+ICAJICogT24gSUxLKyBMVVQgbXVzdCBiZSBsb2FkZWQgYmVmb3JlIHRoZSBwaXBl IGlzIHJ1bm5pbmcgYnV0IHdpdGgKPiA+ICAJICogY2xvY2tzIGVuYWJsZWQKPiA+ICAJICovCj4g PiAtCWludGVsX2NvbG9yX2xvYWRfbHV0cyhwaXBlX2NvbmZpZyk7Cj4gPiAtCWludGVsX2NvbG9y X2NvbW1pdChwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2NvbG9yX2xvYWRfbHV0cyhuZXdfY3J0 Y19zdGF0ZSk7Cj4gPiArCWludGVsX2NvbG9yX2NvbW1pdChuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAg CS8qIHVwZGF0ZSBEU1BDTlRSIHRvIGNvbmZpZ3VyZSBnYW1tYS9jc2MgZm9yIHBpcGUgYm90dG9t IGNvbG9yICovCj4gPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKPiA+IC0JCWludGVs X2Rpc2FibGVfcHJpbWFyeV9wbGFuZShwaXBlX2NvbmZpZyk7Cj4gPiArCQlpbnRlbF9kaXNhYmxl X3ByaW1hcnlfcGxhbmUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkKPiA+ICAJCWljbF9zZXRfcGlwZV9jaGlja2VuKGNydGMpOwo+ID4g IAo+ID4gIAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkKPiA+IC0JCWlu dGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKHBpcGVfY29uZmlnKTsKPiA+ICsJCWludGVs X2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJ aWYgKGRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcykKPiA+ICAJCWRldl9wcml2 LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhzdGF0ZSwgY3J0Yyk7Cj4gPiBAQCAtNjY3NSwx NSArNjY3MiwxNSBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICAKPiA+ICAJLyogWFhYOiBEbyB0aGUgcGlw ZSBhc3NlcnRpb25zIGF0IHRoZSByaWdodCBwbGFjZSBmb3IgQlhUIERTSS4gKi8KPiA+ICAJaWYg KCF0cmFuc2NvZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpCj4gPiAtCQlpbnRlbF9lbmFibGVf cGlwZShwaXBlX2NvbmZpZyk7Cj4gPiArCQlpbnRlbF9lbmFibGVfcGlwZShuZXdfY3J0Y19zdGF0 ZSk7Cj4gPiAgCj4gPiAtCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKQo+ID4gLQkJ bHB0X3BjaF9lbmFibGUoc3RhdGUsIHBpcGVfY29uZmlnKTsKPiA+ICsJaWYgKG5ld19jcnRjX3N0 YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4gPiArCQlscHRfcGNoX2VuYWJsZShzdGF0ZSwgbmV3X2Ny dGNfc3RhdGUpOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShwaXBlX2NvbmZp ZywgSU5URUxfT1VUUFVUX0RQX01TVCkpCj4gPiAtCQlpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRf YWxsb2MocGlwZV9jb25maWcsIHRydWUpOwo+ID4gKwlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShu ZXdfY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RQX01TVCkpCj4gPiArCQlpbnRlbF9kZGlfc2V0 X3ZjX3BheWxvYWRfYWxsb2MobmV3X2NydGNfc3RhdGUsIHRydWUpOwo+ID4gIAo+ID4gLQlpbnRl bF9jcnRjX3ZibGFua19vbihwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2NydGNfdmJsYW5rX29u KG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKHN0YXRl LCBjcnRjKTsKPiA+ICAKPiA+IEBAIC02Njk0LDcgKzY2OTEsNyBAQCBzdGF0aWMgdm9pZCBoYXN3 ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ ICAKPiA+ICAJLyogSWYgd2UgY2hhbmdlIHRoZSByZWxhdGl2ZSBvcmRlciBiZXR3ZWVuIHBpcGUv cGxhbmVzIGVuYWJsaW5nLCB3ZSBuZWVkCj4gPiAgCSAqIHRvIGNoYW5nZSB0aGUgd29ya2Fyb3Vu ZC4gKi8KPiA+IC0JaHN3X3dvcmthcm91bmRfcGlwZSA9IHBpcGVfY29uZmlnLT5oc3dfd29ya2Fy b3VuZF9waXBlOwo+ID4gKwloc3dfd29ya2Fyb3VuZF9waXBlID0gbmV3X2NydGNfc3RhdGUtPmhz d193b3JrYXJvdW5kX3BpcGU7Cj4gPiAgCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBoc3df d29ya2Fyb3VuZF9waXBlICE9IElOVkFMSURfUElQRSkgewo+ID4gIAkJaW50ZWxfd2FpdF9mb3Jf dmJsYW5rKGRldl9wcml2LCBoc3dfd29ya2Fyb3VuZF9waXBlKTsKPiA+ICAJCWludGVsX3dhaXRf Zm9yX3ZibGFuayhkZXZfcHJpdiwgaHN3X3dvcmthcm91bmRfcGlwZSk7Cj4gPiBAQCAtNzAwNywy OCArNzAwNCwyOCBAQCBzdGF0aWMgdm9pZCBtb2Rlc2V0X3B1dF9wb3dlcl9kb21haW5zKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCWludGVsX2Rpc3BsYXlfcG93ZXJf cHV0X3VuY2hlY2tlZChkZXZfcHJpdiwgZG9tYWluKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGlj IHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCj4gPiArc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUsCj4gPiAgCQkJCSAgIHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwo+ID4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwo+ID4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiAgCj4g PiAgCWlmIChXQVJOX09OKGNydGMtPmFjdGl2ZSkpCj4gPiAgCQlyZXR1cm47Cj4gPiAgCj4gPiAt CWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKHBpcGVfY29uZmlnKSkKPiA+IC0JCWludGVs X2RwX3NldF9tX24ocGlwZV9jb25maWcsIE0xX04xKTsKPiA+ICsJaWYgKGludGVsX2NydGNfaGFz X2RwX2VuY29kZXIobmV3X2NydGNfc3RhdGUpKQo+ID4gKwkJaW50ZWxfZHBfc2V0X21fbihuZXdf Y3J0Y19zdGF0ZSwgTTFfTjEpOwo+ID4gIAo+ID4gLQlpbnRlbF9zZXRfcGlwZV90aW1pbmdzKHBp cGVfY29uZmlnKTsKPiA+IC0JaW50ZWxfc2V0X3BpcGVfc3JjX3NpemUocGlwZV9jb25maWcpOwo+ ID4gKwlpbnRlbF9zZXRfcGlwZV90aW1pbmdzKG5ld19jcnRjX3N0YXRlKTsKPiA+ICsJaW50ZWxf c2V0X3BpcGVfc3JjX3NpemUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gIAlpZiAoSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikgJiYgcGlwZSA9PSBQSVBFX0IpIHsKPiA+ICAJCUk5MTVfV1JJVEUo Q0hWX0JMRU5EKHBpcGUpLCBDSFZfQkxFTkRfTEVHQUNZKTsKPiA+ICAJCUk5MTVfV1JJVEUoQ0hW X0NBTlZBUyhwaXBlKSwgMCk7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JaTl4eF9zZXRfcGlwZWNvbmYo cGlwZV9jb25maWcpOwo+ID4gKwlpOXh4X3NldF9waXBlY29uZihuZXdfY3J0Y19zdGF0ZSk7Cj4g PiAgCj4gPiAgCWNydGMtPmFjdGl2ZSA9IHRydWU7Cj4gPiAgCj4gPiBAQCAtNzAzNywyNiArNzAz NCwyNiBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICAJaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFi bGUoc3RhdGUsIGNydGMpOwo+ID4gIAo+ID4gIAlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikp IHsKPiA+IC0JCWNodl9wcmVwYXJlX3BsbChjcnRjLCBwaXBlX2NvbmZpZyk7Cj4gPiAtCQljaHZf ZW5hYmxlX3BsbChjcnRjLCBwaXBlX2NvbmZpZyk7Cj4gPiArCQljaHZfcHJlcGFyZV9wbGwoY3J0 YywgbmV3X2NydGNfc3RhdGUpOwo+ID4gKwkJY2h2X2VuYWJsZV9wbGwoY3J0YywgbmV3X2NydGNf c3RhdGUpOwo+ID4gIAl9IGVsc2Ugewo+ID4gLQkJdmx2X3ByZXBhcmVfcGxsKGNydGMsIHBpcGVf Y29uZmlnKTsKPiA+IC0JCXZsdl9lbmFibGVfcGxsKGNydGMsIHBpcGVfY29uZmlnKTsKPiA+ICsJ CXZsdl9wcmVwYXJlX3BsbChjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gPiArCQl2bHZfZW5hYmxl X3BsbChjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJaW50ZWxfZW5j b2RlcnNfcHJlX2VuYWJsZShzdGF0ZSwgY3J0Yyk7Cj4gPiAgCj4gPiAtCWk5eHhfcGZpdF9lbmFi bGUocGlwZV9jb25maWcpOwo+ID4gKwlpOXh4X3BmaXRfZW5hYmxlKG5ld19jcnRjX3N0YXRlKTsK PiA+ICAKPiA+IC0JaW50ZWxfY29sb3JfbG9hZF9sdXRzKHBpcGVfY29uZmlnKTsKPiA+IC0JaW50 ZWxfY29sb3JfY29tbWl0KHBpcGVfY29uZmlnKTsKPiA+ICsJaW50ZWxfY29sb3JfbG9hZF9sdXRz KG5ld19jcnRjX3N0YXRlKTsKPiA+ICsJaW50ZWxfY29sb3JfY29tbWl0KG5ld19jcnRjX3N0YXRl KTsKPiA+ICAJLyogdXBkYXRlIERTUENOVFIgdG8gY29uZmlndXJlIGdhbW1hIGZvciBwaXBlIGJv dHRvbSBjb2xvciAqLwo+ID4gLQlpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUocGlwZV9jb25m aWcpOwo+ID4gKwlpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUobmV3X2NydGNfc3RhdGUpOwo+ ID4gIAo+ID4gIAlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3Moc3RhdGUsIGNy dGMpOwo+ID4gLQlpbnRlbF9lbmFibGVfcGlwZShwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2Vu YWJsZV9waXBlKG5ld19jcnRjX3N0YXRlKTsKPiA+ICAKPiA+IC0JaW50ZWxfY3J0Y192Ymxhbmtf b24ocGlwZV9jb25maWcpOwo+ID4gKwlpbnRlbF9jcnRjX3ZibGFua19vbihuZXdfY3J0Y19zdGF0 ZSk7Cj4gPiAgCj4gPiAgCWludGVsX2VuY29kZXJzX2VuYWJsZShzdGF0ZSwgY3J0Yyk7Cj4gPiAg fQo+ID4gQEAgLTcwNzAsMjUgKzcwNjcsMjUgQEAgc3RhdGljIHZvaWQgaTl4eF9zZXRfcGxsX2Rp dmlkZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gIAlJ OTE1X1dSSVRFKEZQMShjcnRjLT5waXBlKSwgY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5mcDEp Owo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBpOXh4X2NydGNfZW5hYmxlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICtzdGF0aWMgdm9pZCBpOXh4X2NydGNf ZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSwKPiA+ICAJCQkg ICAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIHsKPiA+IC0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMp Owo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNf c3RhdGUtPnVhcGkuY3J0Yyk7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7Cj4gPiAgCj4gPiAgCWlmIChXQVJOX09OKGNydGMtPmFjdGl2ZSkpCj4gPiAgCQlyZXR1 cm47Cj4gPiAgCj4gPiAtCWk5eHhfc2V0X3BsbF9kaXZpZGVycyhwaXBlX2NvbmZpZyk7Cj4gPiAr CWk5eHhfc2V0X3BsbF9kaXZpZGVycyhuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiAtCWlmIChp bnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKHBpcGVfY29uZmlnKSkKPiA+IC0JCWludGVsX2RwX3Nl dF9tX24ocGlwZV9jb25maWcsIE0xX04xKTsKPiA+ICsJaWYgKGludGVsX2NydGNfaGFzX2RwX2Vu Y29kZXIobmV3X2NydGNfc3RhdGUpKQo+ID4gKwkJaW50ZWxfZHBfc2V0X21fbihuZXdfY3J0Y19z dGF0ZSwgTTFfTjEpOwo+ID4gIAo+ID4gLQlpbnRlbF9zZXRfcGlwZV90aW1pbmdzKHBpcGVfY29u ZmlnKTsKPiA+IC0JaW50ZWxfc2V0X3BpcGVfc3JjX3NpemUocGlwZV9jb25maWcpOwo+ID4gKwlp bnRlbF9zZXRfcGlwZV90aW1pbmdzKG5ld19jcnRjX3N0YXRlKTsKPiA+ICsJaW50ZWxfc2V0X3Bp cGVfc3JjX3NpemUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gLQlpOXh4X3NldF9waXBlY29u ZihwaXBlX2NvbmZpZyk7Cj4gPiArCWk5eHhfc2V0X3BpcGVjb25mKG5ld19jcnRjX3N0YXRlKTsK PiA+ICAKPiA+ICAJY3J0Yy0+YWN0aXZlID0gdHJ1ZTsKPiA+ICAKPiA+IEBAIC03MDk3LDIyICs3 MDk0LDIyIEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gIAo+ID4gIAlpbnRlbF9lbmNvZGVyc19wcmVfZW5hYmxl KHN0YXRlLCBjcnRjKTsKPiA+ICAKPiA+IC0JaTl4eF9lbmFibGVfcGxsKGNydGMsIHBpcGVfY29u ZmlnKTsKPiA+ICsJaTl4eF9lbmFibGVfcGxsKGNydGMsIG5ld19jcnRjX3N0YXRlKTsKPiA+ICAK PiA+IC0JaTl4eF9wZml0X2VuYWJsZShwaXBlX2NvbmZpZyk7Cj4gPiArCWk5eHhfcGZpdF9lbmFi bGUobmV3X2NydGNfc3RhdGUpOwo+ID4gIAo+ID4gLQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMocGlw ZV9jb25maWcpOwo+ID4gLQlpbnRlbF9jb2xvcl9jb21taXQocGlwZV9jb25maWcpOwo+ID4gKwlp bnRlbF9jb2xvcl9sb2FkX2x1dHMobmV3X2NydGNfc3RhdGUpOwo+ID4gKwlpbnRlbF9jb2xvcl9j b21taXQobmV3X2NydGNfc3RhdGUpOwo+ID4gIAkvKiB1cGRhdGUgRFNQQ05UUiB0byBjb25maWd1 cmUgZ2FtbWEgZm9yIHBpcGUgYm90dG9tIGNvbG9yICovCj4gPiAtCWludGVsX2Rpc2FibGVfcHJp bWFyeV9wbGFuZShwaXBlX2NvbmZpZyk7Cj4gPiArCWludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFu ZShuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5pbml0 aWFsX3dhdGVybWFya3MpCj4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFy a3Moc3RhdGUsIGNydGMpOwo+ID4gIAllbHNlCj4gPiAgCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJr cyhjcnRjKTsKPiA+IC0JaW50ZWxfZW5hYmxlX3BpcGUocGlwZV9jb25maWcpOwo+ID4gKwlpbnRl bF9lbmFibGVfcGlwZShuZXdfY3J0Y19zdGF0ZSk7Cj4gPiAgCj4gPiAtCWludGVsX2NydGNfdmJs YW5rX29uKHBpcGVfY29uZmlnKTsKPiA+ICsJaW50ZWxfY3J0Y192Ymxhbmtfb24obmV3X2NydGNf c3RhdGUpOwo+ID4gIAo+ID4gIAlpbnRlbF9lbmNvZGVyc19lbmFibGUoc3RhdGUsIGNydGMpOwo+ ID4gIH0KPiA+IC0tIAo+ID4gMi4yMy4wCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=