From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/4] drm/i915: split out i915_switcheroo.[ch] from i915_drv.c Date: Wed, 2 Oct 2019 18:04:17 +0300 Message-ID: <20191002150417.GY1208@intel.com> References: <20191002131800.21054-1-jani.nikula@intel.com> <20191002131800.21054-2-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 14E926E140 for ; Wed, 2 Oct 2019 15:04:20 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191002131800.21054-2-jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMDIsIDIwMTkgYXQgMDQ6MTc6NThQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gU3BsaXQgb3V0IGNvZGUgcmVsYXRlZCB0byB2Z2Egc3dpdGNoZXJvbyByZWdpc3Rlci91 bnJlZ2lzdGVyIGFuZCBzdGF0ZQo+IGhhbmRsaW5nIGZyb20gaTkxNV9kcnYuYyBpbnRvIG5ldyBp OTE1X3N3aXRjaGVyb28uW2NoXSBmaWxlcy4KPiAKPiBJdCdzIGEgYml0IGRpZmZpY3VsdCB0byBk cmF3IHRoZSBsaW5lIGhvdyBtdWNoIHRvIG1vdmUgdG8gdGhlIG5ldyBmaWxlCj4gZnJvbSBpOTE1 X2Rydi5jLCBidXQgaXQgc2VlbWVkIHRvIG1lIGtlZXBpbmcgaTkxNV9zdXNwZW5kX3N3aXRjaGVy b28oKQo+IGFuZCBpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKCkgaW4gcGxhY2Ugd2FzIHRoZSBjbGVh bmVzdC4KPiAKPiBObyBmdW5jdGlvbmFsIGNoYW5nZXMuCj4gCj4gQ2M6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IFNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl ICAgICAgICAgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAg ICB8IDYzICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICAgICB8ICAzICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dp dGNoZXJvby5jIHwgNjcgKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9zd2l0Y2hlcm9vLmggfCAxNCArKysrKysKPiAgNSBmaWxlcyBjaGFuZ2Vk LCA5MiBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dpdGNoZXJvby5jCj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3aXRjaGVyb28uaAo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L01ha2VmaWxlCj4gaW5kZXggZDJiNTNiNWFkZDgxLi4xMzZhMWE1MWI2ZTIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQo+IEBAIC00Niw2ICs0Niw3IEBAIGk5MTUteSArPSBpOTE1X2Rydi5vIFwK PiAgCSAgaTkxNV9wY2kubyBcCj4gIAkgIGk5MTVfc2NhdHRlcmxpc3QubyBcCj4gIAkgIGk5MTVf c3VzcGVuZC5vIFwKPiArCSAgaTkxNV9zd2l0Y2hlcm9vLm8gXAo+ICAJICBpOTE1X3N5c2ZzLm8g XAo+ICAJICBpOTE1X3V0aWxzLm8gXAo+ICAJICBpbnRlbF9jc3IubyBcCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCj4gaW5kZXggMzMwNmM2YmI1MTVhLi43MzQ5ZmQ4Yzk3OTYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAtNzIsNiArNzIsNyBAQAo+ICAjaW5jbHVkZSAiaTkxNV9w ZXJmLmgiCj4gICNpbmNsdWRlICJpOTE1X3F1ZXJ5LmgiCj4gICNpbmNsdWRlICJpOTE1X3N1c3Bl bmQuaCIKPiArI2luY2x1ZGUgImk5MTVfc3dpdGNoZXJvby5oIgo+ICAjaW5jbHVkZSAiaTkxNV9z eXNmcy5oIgo+ICAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgo+ICAjaW5jbHVkZSAiaTkxNV92Z3B1 LmgiCj4gQEAgLTI2OSw1NiArMjcwLDggQEAgaW50ZWxfdGVhcmRvd25fbWNoYmFyKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlyZWxlYXNlX3Jlc291cmNlKCZkZXZfcHJp di0+bWNoX3Jlcyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaTkxNV9yZXN1bWVfc3dpdGNoZXJv byhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gLXN0YXRpYyBpbnQgaTkxNV9zdXNw ZW5kX3N3aXRjaGVyb28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkJCQkgICBw bV9tZXNzYWdlX3Qgc3RhdGUpOwo+IC0KPiAtc3RhdGljIHZvaWQgaTkxNV9zd2l0Y2hlcm9vX3Nl dF9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSB2Z2Ffc3dpdGNoZXJvb19zdGF0ZSBz dGF0ZSkKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBwZGV2X3RvX2k5 MTUocGRldik7Cj4gLQlwbV9tZXNzYWdlX3QgcG1tID0geyAuZXZlbnQgPSBQTV9FVkVOVF9TVVNQ RU5EIH07Cj4gLQo+IC0JaWYgKCFpOTE1KSB7Cj4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRFJN IG5vdCBpbml0aWFsaXplZCwgYWJvcnRpbmcgc3dpdGNoLlxuIik7Cj4gLQkJcmV0dXJuOwo+IC0J fQo+IC0KPiAtCWlmIChzdGF0ZSA9PSBWR0FfU1dJVENIRVJPT19PTikgewo+IC0JCXByX2luZm8o InN3aXRjaGVkIG9uXG4iKTsKPiAtCQlpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJN X1NXSVRDSF9QT1dFUl9DSEFOR0lORzsKPiAtCQkvKiBpOTE1IHJlc3VtZSBoYW5kbGVyIGRvZXNu J3Qgc2V0IHRvIEQwICovCj4gLQkJcGNpX3NldF9wb3dlcl9zdGF0ZShwZGV2LCBQQ0lfRDApOwo+ IC0JCWk5MTVfcmVzdW1lX3N3aXRjaGVyb28oaTkxNSk7Cj4gLQkJaTkxNS0+ZHJtLnN3aXRjaF9w b3dlcl9zdGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJfT047Cj4gLQl9IGVsc2Ugewo+IC0JCXByX2lu Zm8oInN3aXRjaGVkIG9mZlxuIik7Cj4gLQkJaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9 IERSTV9TV0lUQ0hfUE9XRVJfQ0hBTkdJTkc7Cj4gLQkJaTkxNV9zdXNwZW5kX3N3aXRjaGVyb28o aTkxNSwgcG1tKTsKPiAtCQlpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJNX1NXSVRD SF9QT1dFUl9PRkY7Cj4gLQl9Cj4gLX0KPiAtCj4gLXN0YXRpYyBib29sIGk5MTVfc3dpdGNoZXJv b19jYW5fc3dpdGNoKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSA9IHBkZXZfdG9faTkxNShwZGV2KTsKPiAtCj4gLQkvKgo+IC0JICog RklYTUU6IG9wZW5fY291bnQgaXMgcHJvdGVjdGVkIGJ5IGRybV9nbG9iYWxfbXV0ZXggYnV0IHRo YXQgd291bGQgbGVhZCB0bwo+IC0JICogbG9ja2luZyBpbnZlcnNpb24gd2l0aCB0aGUgZHJpdmVy IGxvYWQgcGF0aC4gQW5kIHRoZSBhY2Nlc3MgaGVyZSBpcwo+IC0JICogY29tcGxldGVseSByYWN5 IGFueXdheS4gU28gZG9uJ3QgYm90aGVyIHdpdGggbG9ja2luZyBmb3Igbm93Lgo+IC0JICovCj4g LQlyZXR1cm4gaTkxNSAmJiBpOTE1LT5kcm0ub3Blbl9jb3VudCA9PSAwOwo+IC19Cj4gLQo+IC1z dGF0aWMgY29uc3Qgc3RydWN0IHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9vcHMgaTkxNV9zd2l0Y2hl cm9vX29wcyA9IHsKPiAtCS5zZXRfZ3B1X3N0YXRlID0gaTkxNV9zd2l0Y2hlcm9vX3NldF9zdGF0 ZSwKPiAtCS5yZXByb2JlID0gTlVMTCwKPiAtCS5jYW5fc3dpdGNoID0gaTkxNV9zd2l0Y2hlcm9v X2Nhbl9zd2l0Y2gsCj4gLX07Cj4gLQo+ICBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX21vZGVzZXRf cHJvYmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAtCXN0cnVjdCBwY2lf ZGV2ICpwZGV2ID0gaTkxNS0+ZHJtLnBkZXY7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCWlmIChpOTE1 X2luamVjdF9wcm9iZV9mYWlsdXJlKGk5MTUpKQo+IEBAIC0zMzksNyArMjkyLDcgQEAgc3RhdGlj IGludCBpOTE1X2RyaXZlcl9tb2Rlc2V0X3Byb2JlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQo+ICAKPiAgCWludGVsX3JlZ2lzdGVyX2RzbV9oYW5kbGVyKCk7Cj4gIAo+IC0JcmV0ID0g dmdhX3N3aXRjaGVyb29fcmVnaXN0ZXJfY2xpZW50KHBkZXYsICZpOTE1X3N3aXRjaGVyb29fb3Bz LCBmYWxzZSk7Cj4gKwlyZXQgPSBpOTE1X3N3aXRjaGVyb29fcmVnaXN0ZXIoaTkxNSk7Cj4gIAlp ZiAocmV0KQo+ICAJCWdvdG8gY2xlYW51cF92Z2FfY2xpZW50Owo+ICAKPiBAQCAtMzk0LDcgKzM0 Nyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfbW9kZXNldF9wcm9iZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKPiAgY2xlYW51cF9jc3I6Cj4gIAlpbnRlbF9jc3JfdWNvZGVfZmlu aShpOTE1KTsKPiAgCWludGVsX3Bvd2VyX2RvbWFpbnNfZHJpdmVyX3JlbW92ZShpOTE1KTsKPiAt CXZnYV9zd2l0Y2hlcm9vX3VucmVnaXN0ZXJfY2xpZW50KHBkZXYpOwo+ICsJaTkxNV9zd2l0Y2hl cm9vX3VucmVnaXN0ZXIoaTkxNSk7Cj4gIGNsZWFudXBfdmdhX2NsaWVudDoKPiAgCWludGVsX3Zn YV91bnJlZ2lzdGVyKGk5MTUpOwo+ICBvdXQ6Cj4gQEAgLTQwMywxMyArMzU2LDEyIEBAIHN0YXRp YyBpbnQgaTkxNV9kcml2ZXJfbW9kZXNldF9wcm9iZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKPiAgCj4gIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX21vZGVzZXRfcmVtb3ZlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9 IGk5MTUtPmRybS5wZGV2Owo+IC0KPiAgCWludGVsX21vZGVzZXRfZHJpdmVyX3JlbW92ZShpOTE1 KTsKPiAgCj4gIAlpbnRlbF9iaW9zX2RyaXZlcl9yZW1vdmUoaTkxNSk7Cj4gIAo+IC0JdmdhX3N3 aXRjaGVyb29fdW5yZWdpc3Rlcl9jbGllbnQocGRldik7Cj4gKwlpOTE1X3N3aXRjaGVyb29fdW5y ZWdpc3RlcihpOTE1KTsKPiArCj4gIAlpbnRlbF92Z2FfdW5yZWdpc3RlcihpOTE1KTsKPiAgCj4g IAlpbnRlbF9jc3JfdWNvZGVfZmluaShpOTE1KTsKPiBAQCAtMTgyNSw4ICsxNzc3LDcgQEAgc3Rh dGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9v bCBoaWJlcm5hdGlvbikKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQKPiAt aTkxNV9zdXNwZW5kX3N3aXRjaGVyb28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHBt X21lc3NhZ2VfdCBzdGF0ZSkKPiAraW50IGk5MTVfc3VzcGVuZF9zd2l0Y2hlcm9vKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCj4gIHsKPiAgCWludCBl cnJvcjsKPiAgCj4gQEAgLTE5OTQsNyArMTk0NSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVz dW1lX2Vhcmx5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4g IAo+IC1zdGF0aWMgaW50IGk5MTVfcmVzdW1lX3N3aXRjaGVyb28oc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUpCj4gK2ludCBpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQo+ICB7Cj4gIAlpbnQgcmV0Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBpbmRleCAzMzdkODMwNjQxNmEuLjBjYTRkOTBkZmE0NiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IEBAIC0yMjIzLDYgKzIyMjMsOSBAQCBleHRlcm4gY29uc3Qgc3RydWN0 IGRldl9wbV9vcHMgaTkxNV9wbV9vcHM7Cj4gIGludCBpOTE1X2RyaXZlcl9wcm9iZShzdHJ1Y3Qg cGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCk7Cj4gIHZvaWQg aTkxNV9kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiAgCj4g K2ludCBpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KTsKPiAraW50IGk5MTVfc3VzcGVuZF9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LCBwbV9tZXNzYWdlX3Qgc3RhdGUpOwo+ICsKPiAgdm9pZCBpbnRlbF9lbmdpbmVfaW5p dF9oYW5nY2hlY2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiAgaW50IHZsdl9m b3JjZV9nZnhfY2xvY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIG9u KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dpdGNoZXJv by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd2l0Y2hlcm9vLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uMzljNzllMWM1YjUyCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dpdGNoZXJvby5jCj4gQEAg LTAsMCArMSw2NyBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4gKy8qCj4g KyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2lu Y2x1ZGUgPGxpbnV4L3ZnYV9zd2l0Y2hlcm9vLmg+Cj4gKwo+ICsjaW5jbHVkZSAiaTkxNV9kcnYu aCIKPiArI2luY2x1ZGUgImk5MTVfc3dpdGNoZXJvby5oIgo+ICsKPiArc3RhdGljIHZvaWQgaTkx NV9zd2l0Y2hlcm9vX3NldF9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPiArCQkJCSAgICAg IGVudW0gdmdhX3N3aXRjaGVyb29fc3RhdGUgc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1ID0gcGRldl90b19pOTE1KHBkZXYpOwo+ICsJcG1fbWVzc2FnZV90IHBt bSA9IHsgLmV2ZW50ID0gUE1fRVZFTlRfU1VTUEVORCB9Owo+ICsKPiArCWlmICghaTkxNSkgewo+ ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgIkRSTSBub3QgaW5pdGlhbGl6ZWQsIGFib3J0aW5nIHN3 aXRjaC5cbiIpOwo+ICsJCXJldHVybjsKPiArCX0KCklzIHRoYXQgZGVhZCBjb2RlPwoKUGF0Y2gg aXMKUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cgo+ICsKPiArCWlmIChzdGF0ZSA9PSBWR0FfU1dJVENIRVJPT19PTikgewo+ICsJCXBy X2luZm8oInN3aXRjaGVkIG9uXG4iKTsKPiArCQlpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRl ID0gRFJNX1NXSVRDSF9QT1dFUl9DSEFOR0lORzsKPiArCQkvKiBpOTE1IHJlc3VtZSBoYW5kbGVy IGRvZXNuJ3Qgc2V0IHRvIEQwICovCj4gKwkJcGNpX3NldF9wb3dlcl9zdGF0ZShwZGV2LCBQQ0lf RDApOwo+ICsJCWk5MTVfcmVzdW1lX3N3aXRjaGVyb28oaTkxNSk7Cj4gKwkJaTkxNS0+ZHJtLnN3 aXRjaF9wb3dlcl9zdGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJfT047Cj4gKwl9IGVsc2Ugewo+ICsJ CXByX2luZm8oInN3aXRjaGVkIG9mZlxuIik7Cj4gKwkJaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9z dGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJfQ0hBTkdJTkc7Cj4gKwkJaTkxNV9zdXNwZW5kX3N3aXRj aGVyb28oaTkxNSwgcG1tKTsKPiArCQlpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJN X1NXSVRDSF9QT1dFUl9PRkY7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGk5MTVfc3dp dGNoZXJvb19jYW5fc3dpdGNoKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICt7Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHBkZXZfdG9faTkxNShwZGV2KTsKPiArCj4gKwkvKgo+ ICsJICogRklYTUU6IG9wZW5fY291bnQgaXMgcHJvdGVjdGVkIGJ5IGRybV9nbG9iYWxfbXV0ZXgg YnV0IHRoYXQgd291bGQgbGVhZCB0bwo+ICsJICogbG9ja2luZyBpbnZlcnNpb24gd2l0aCB0aGUg ZHJpdmVyIGxvYWQgcGF0aC4gQW5kIHRoZSBhY2Nlc3MgaGVyZSBpcwo+ICsJICogY29tcGxldGVs eSByYWN5IGFueXdheS4gU28gZG9uJ3QgYm90aGVyIHdpdGggbG9ja2luZyBmb3Igbm93Lgo+ICsJ ICovCj4gKwlyZXR1cm4gaTkxNSAmJiBpOTE1LT5kcm0ub3Blbl9jb3VudCA9PSAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9vcHMgaTkxNV9z d2l0Y2hlcm9vX29wcyA9IHsKPiArCS5zZXRfZ3B1X3N0YXRlID0gaTkxNV9zd2l0Y2hlcm9vX3Nl dF9zdGF0ZSwKPiArCS5yZXByb2JlID0gTlVMTCwKPiArCS5jYW5fc3dpdGNoID0gaTkxNV9zd2l0 Y2hlcm9vX2Nhbl9zd2l0Y2gsCj4gK307Cj4gKwo+ICtpbnQgaTkxNV9zd2l0Y2hlcm9vX3JlZ2lz dGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwlzdHJ1Y3QgcGNpX2Rl diAqcGRldiA9IGk5MTUtPmRybS5wZGV2Owo+ICsKPiArCXJldHVybiB2Z2Ffc3dpdGNoZXJvb19y ZWdpc3Rlcl9jbGllbnQocGRldiwgJmk5MTVfc3dpdGNoZXJvb19vcHMsIGZhbHNlKTsKPiArfQo+ ICsKPiArdm9pZCBpOTE1X3N3aXRjaGVyb29fdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKPiArewo+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1LT5kcm0ucGRl djsKPiArCj4gKwl2Z2Ffc3dpdGNoZXJvb191bnJlZ2lzdGVyX2NsaWVudChwZGV2KTsKPiArfQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3aXRjaGVyb28uaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dpdGNoZXJvby5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjU5YjZjMWUwN2Q3NQo+IC0tLSAvZGV2L251bGwKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3aXRjaGVyb28uaAo+IEBAIC0wLDAgKzEs MTQgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ICsvKgo+ICsgKiBD b3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5kZWYg X19JOTE1X1NXSVRDSEVST09fXwo+ICsjZGVmaW5lIF9fSTkxNV9TV0lUQ0hFUk9PX18KPiArCj4g K3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOwo+ICsKPiAraW50IGk5MTVfc3dpdGNoZXJvb19yZWdp c3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK3ZvaWQgaTkxNV9zd2l0Y2hl cm9vX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+ICsKPiArI2Vu ZGlmIC8qIF9fSTkxNV9TV0lUQ0hFUk9PX18gKi8KPiAtLSAKPiAyLjIwLjEKCi0tIApWaWxsZSBT eXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4