From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 4/6] drm/i915: Dynamically allocate s0ix struct for VLV Date: Fri, 16 Aug 2019 12:35:08 +0300 Message-ID: <875zmxfo6r.fsf@intel.com> References: <20190816012343.36433-1-daniele.ceraolospurio@intel.com> <20190816012343.36433-5-daniele.ceraolospurio@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 ESMTPS id EED9689F71 for ; Fri, 16 Aug 2019 09:35:10 +0000 (UTC) In-Reply-To: <20190816012343.36433-5-daniele.ceraolospurio@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxNSBBdWcgMjAxOSwgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJh b2xvc3B1cmlvQGludGVsLmNvbT4gd3JvdGU6Cj4gVGhpcyBpcyBvbmx5IHJlcXVpcmVkIGZvciBh IHNpbmdsZSBwbGF0Zm9ybSBzbyBubyBuZWVkIHRvIHJlc2VydmUgdGhlCj4gbWVtb3J5IG9uIGFs bCBvZiB0aGVtLgo+Cj4gVGhpcyByZW1vdmVzIHRoZSBsYXN0IGRpcmVjdCBkZXBlbmRlbmN5IG9m IGk5MTVfZHJ2Lmggb24gaTkxNV9yZWcuaAo+IChhcGFydCBmcm9tIHRoZSBpOTE1X3JlZ190IGRl ZmluaXRpb24pLgo+Cj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFu aWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPiBDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtA aW50ZWwuY29tPgoKSGVoLCBJJ3ZlIGFscmVhZHkgc2VudCBhIHZlcnNpb24gb2YgdGhpcyBbMV0s IGJ1dCBJIGRvbid0IG1pbmQgeW91CmZpbmlzaGluZyB0aGUgam9iLiBFc3BlY2lhbGx5IGJlY2F1 c2UgSSB0aGluayBpdCdzIGJldHRlciB0byBoYW5kbGUgdGhlCmFsbG9jL2ZyZWUgZXhwbGljaXRs eSBpbnN0ZWFkIG9mIHRoZSB3YXkgSSBkbyBpdC4KCkkgZG8gaGF2ZSBzb21lIG5pdHBpY2tzIG9u IHRoaXMgb25lIHRob3VnaCwgaW5saW5lLgoKClsxXSBodHRwOi8vcGF0Y2h3b3JrLmZyZWVkZXNr dG9wLm9yZy9wYXRjaC9tc2dpZC8yMDE5MDgwNzE0NDkzOS4zMjEyMy0xLWphbmkubmlrdWxhQGlu dGVsLmNvbQoKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgfCAxMDcg KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCB8ICA2NCArLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwg MTAwIGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCj4gaW5kZXggMjU0MWEzYTFjMjI5Li4xNzIzYjJkZGZjY2QgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKPiBAQCAtODAsNiArODAsNjggQEAKPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHJt X2RyaXZlciBkcml2ZXI7Cj4gIAo+ICtzdHJ1Y3Qgdmx2X3MwaXhfc3RhdGUgewo+ICsJLyogR0FN ICovCj4gKwl1MzIgd3Jfd2F0ZXJtYXJrOwo+ICsJdTMyIGdmeF9wcmlvX2N0cmw7Cj4gKwl1MzIg YXJiX21vZGU7Cj4gKwl1MzIgZ2Z4X3BlbmRfdGxiMDsKPiArCXUzMiBnZnhfcGVuZF90bGIxOwo+ ICsJdTMyIGxyYV9saW1pdHNbR0VON19MUkFfTElNSVRTX1JFR19OVU1dOwo+ICsJdTMyIG1lZGlh X21heF9yZXFfY291bnQ7Cj4gKwl1MzIgZ2Z4X21heF9yZXFfY291bnQ7Cj4gKwl1MzIgcmVuZGVy X2h3c3A7Cj4gKwl1MzIgZWNvY2hrOwo+ICsJdTMyIGJzZF9od3NwOwo+ICsJdTMyIGJsdF9od3Nw Owo+ICsJdTMyIHRsYl9yZF9hZGRyOwo+ICsKPiArCS8qIE1CQyAqLwo+ICsJdTMyIGczZGN0bDsK PiArCXUzMiBnc2NrZ2N0bDsKPiArCXUzMiBtYmN0bDsKPiArCj4gKwkvKiBHQ1AgKi8KPiArCXUz MiB1Y2djdGwxOwo+ICsJdTMyIHVjZ2N0bDM7Cj4gKwl1MzIgcmNnY3RsMTsKPiArCXUzMiByY2dj dGwyOwo+ICsJdTMyIHJzdGN0bDsKPiArCXUzMiBtaXNjY3BjdGw7Cj4gKwo+ICsJLyogR1BNICov Cj4gKwl1MzIgZ2Z4cGF1c2U7Cj4gKwl1MzIgcnBkZXVod3RjOwo+ICsJdTMyIHJwZGV1YzsKPiAr CXUzMiBlY29idXM7Cj4gKwl1MzIgcHdyZHdudXBjdGw7Cj4gKwl1MzIgcnBfZG93bl90aW1lb3V0 Owo+ICsJdTMyIHJwX2RldWNzdzsKPiArCXUzMiByY3VibWFiZHRtcjsKPiArCXUzMiByY2VkYXRh Owo+ICsJdTMyIHNwYXJlMmdoOwo+ICsKPiArCS8qIERpc3BsYXkgMSBDWiBkb21haW4gKi8KPiAr CXUzMiBndF9pbXI7Cj4gKwl1MzIgZ3RfaWVyOwo+ICsJdTMyIHBtX2ltcjsKPiArCXUzMiBwbV9p ZXI7Cj4gKwl1MzIgZ3Rfc2NyYXRjaFtHRU43X0dUX1NDUkFUQ0hfUkVHX05VTV07Cj4gKwo+ICsJ LyogR1QgU0EgQ1ogZG9tYWluICovCj4gKwl1MzIgdGlsZWN0bDsKPiArCXUzMiBndF9maWZvY3Rs Owo+ICsJdTMyIGd0bGNfd2FrZV9jdHJsOwo+ICsJdTMyIGd0bGNfc3Vydml2ZTsKPiArCXUzMiBw bXdnaWN6Owo+ICsKPiArCS8qIERpc3BsYXkgMiBDWiBkb21haW4gKi8KPiArCXUzMiBndV9jdGww Owo+ICsJdTMyIGd1X2N0bDE7Cj4gKwl1MzIgcGNicjsKPiArCXUzMiBjbG9ja19nYXRlX2RpczI7 Cj4gK307Cj4gKwo+ICBzdGF0aWMgaW50IGk5MTVfZ2V0X2JyaWRnZV9kZXYoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAlpbnQgZG9tYWluID0gcGNpX2RvbWFpbl9u cihkZXZfcHJpdi0+ZHJtLnBkZXYtPmJ1cyk7Cj4gQEAgLTQ2Niw2ICs1MjgsMjggQEAgc3RhdGlj IHZvaWQgaW50ZWxfZGV0ZWN0X3ByZXByb2R1Y3Rpb25faHcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICAJfQo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IHZsdl9hbGxvY19zMGl4 X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwlpZiAoIUlTX1ZB TExFWVZJRVcoaTkxNSkpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJLyogd2Ugd3JpdGUgYWxsIHRo ZSB2YWx1ZXMgaW4gdGhlIHN0cnVjdHVyZSwgc28gbm8gbmVlZCB0byB6ZXJvIGl0IG91dCAqLwo+ ICsJaTkxNS0+czBpeF9zdGF0ZSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB2bHZfczBpeF9zdGF0 ZSksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFpOTE1LT5zMGl4X3N0YXRlKQo+ICsJCXJldHVybiAt RU5PTUVNOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB2bHZfZnJl ZV9zMGl4X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwlpZiAo IWk5MTUtPnMwaXhfc3RhdGUpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWtmcmVlKGk5MTUtPnMwaXhf c3RhdGUpOwo+ICsJaTkxNS0+czBpeF9zdGF0ZSA9IE5VTEw7Cj4gK30KPiArCj4gIC8qKgo+ICAg KiBpOTE1X2RyaXZlcl9lYXJseV9wcm9iZSAtIHNldHVwIHN0YXRlIG5vdCByZXF1aXJpbmcgZGV2 aWNlIGFjY2Vzcwo+ICAgKiBAZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCj4gQEAgLTUwOCwxMyAr NTkyLDE3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfZWFybHlfcHJvYmUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJaWYgKHJldCA8IDApCj4gIAkJcmV0dXJuIHJldDsK PiAgCj4gKwlyZXQgPSB2bHZfYWxsb2NfczBpeF9zdGF0ZShkZXZfcHJpdik7Cj4gKwlpZiAocmV0 IDwgMCkKPiArCQlnb3RvIGVycl93b3JrcXVldWVzOwo+ICsKPiAgCWludGVsX3dvcGNtX2luaXRf ZWFybHkoJmRldl9wcml2LT53b3BjbSk7Cj4gIAo+ICAJaW50ZWxfZ3RfaW5pdF9lYXJseSgmZGV2 X3ByaXYtPmd0LCBkZXZfcHJpdik7Cj4gIAo+ICAJcmV0ID0gaTkxNV9nZW1faW5pdF9lYXJseShk ZXZfcHJpdik7Cj4gIAlpZiAocmV0IDwgMCkKPiAtCQlnb3RvIGVycl93b3JrcXVldWVzOwo+ICsJ CWdvdG8gZXJyX2d0Owo+ICAKPiAgCS8qIFRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBj YWxscyB0byBIQVNfUENIXyogKi8KPiAgCWludGVsX2RldGVjdF9wY2goZGV2X3ByaXYpOwo+IEBA IC01MzYsOCArNjI0LDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfZWFybHlfcHJvYmUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAKPiAgZXJyX2dlbToKPiAgCWk5MTVf Z2VtX2NsZWFudXBfZWFybHkoZGV2X3ByaXYpOwo+IC1lcnJfd29ya3F1ZXVlczoKPiArZXJyX2d0 Ogo+ICAJaW50ZWxfZ3RfZHJpdmVyX2xhdGVfcmVsZWFzZSgmZGV2X3ByaXYtPmd0KTsKPiArCXZs dl9mcmVlX3MwaXhfc3RhdGUoZGV2X3ByaXYpOwo+ICtlcnJfd29ya3F1ZXVlczoKPiAgCWk5MTVf d29ya3F1ZXVlc19jbGVhbnVwKGRldl9wcml2KTsKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiBAQCAt NTUzLDYgKzY0Myw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2xhdGVfcmVsZWFzZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpbnRlbF9wb3dlcl9kb21haW5zX2Ns ZWFudXAoZGV2X3ByaXYpOwo+ICAJaTkxNV9nZW1fY2xlYW51cF9lYXJseShkZXZfcHJpdik7Cj4g IAlpbnRlbF9ndF9kcml2ZXJfbGF0ZV9yZWxlYXNlKCZkZXZfcHJpdi0+Z3QpOwo+ICsJdmx2X2Zy ZWVfczBpeF9zdGF0ZShkZXZfcHJpdik7Cj4gIAlpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChkZXZf cHJpdik7Cj4gIAo+ICAJcG1fcW9zX3JlbW92ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+c2JfcW9zKTsK PiBAQCAtMjEzNyw3ICsyMjI4LDcgQEAgc3RhdGljIGludCBpOTE1X3BtX3Jlc3RvcmUoc3RydWN0 IGRldmljZSAqa2RldikKPiAgICovCj4gIHN0YXRpYyB2b2lkIHZsdl9zYXZlX2d1bml0X3MwaXhf c3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlzdHJ1Y3Qg dmx2X3MwaXhfc3RhdGUgKnMgPSAmZGV2X3ByaXYtPnZsdl9zMGl4X3N0YXRlOwo+ICsJc3RydWN0 IHZsdl9zMGl4X3N0YXRlICpzID0gZGV2X3ByaXYtPnMwaXhfc3RhdGU7CgpJIHRoaW5rIEknZCBu b3cgY2FsbCB0aGlzIGZ1bmN0aW9uIHVuY29uZGl0aW9uYWxseSwgYW5kIHJldHVybiBlYXJseSBp ZgooIXMpLiBUaGlzIHB1dHMgdGhlIGRlY2lzaW9uIHRvIGRvIHRoaXMgb3Igbm90IGluIG9uZSBw bGFjZSBvbmx5LCBpbgp2bHZfYWxsb2NfczBpeF9zdGF0ZSgpLCBpbnN0ZWFkIG9mIGR1cGxpY2F0 aW5nIHRoZSBjb25kaXRpb25zLgoKCj4gIAlpbnQgaTsKPiAgCj4gIAkvKiBHQU0gMHg0MDAwLTB4 NDc3MCAqLwo+IEBAIC0yMTQ3LDcgKzIyMzgsNyBAQCBzdGF0aWMgdm9pZCB2bHZfc2F2ZV9ndW5p dF9zMGl4X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXMtPmdm eF9wZW5kX3RsYjAJPSBJOTE1X1JFQUQoR0VON19HRlhfUEVORF9UTEIwKTsKPiAgCXMtPmdmeF9w ZW5kX3RsYjEJPSBJOTE1X1JFQUQoR0VON19HRlhfUEVORF9UTEIxKTsKPiAgCj4gLQlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShzLT5scmFfbGltaXRzKTsgaSsrKQo+ICsJZm9yIChpID0gMDsg aSA8IEdFTjdfTFJBX0xJTUlUU19SRUdfTlVNOyBpKyspCj4gIAkJcy0+bHJhX2xpbWl0c1tpXSA9 IEk5MTVfUkVBRChHRU43X0xSQV9MSU1JVFMoaSkpOwo+ICAKPiAgCXMtPm1lZGlhX21heF9yZXFf Y291bnQJPSBJOTE1X1JFQUQoR0VON19NRURJQV9NQVhfUkVRX0NPVU5UKTsKPiBAQCAtMjE5MSw3 ICsyMjgyLDcgQEAgc3RhdGljIHZvaWQgdmx2X3NhdmVfZ3VuaXRfczBpeF9zdGF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlzLT5wbV9pbXIJCT0gSTkxNV9SRUFEKEdF TjZfUE1JTVIpOwo+ICAJcy0+cG1faWVyCQk9IEk5MTVfUkVBRChHRU42X1BNSUVSKTsKPiAgCj4g LQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzLT5ndF9zY3JhdGNoKTsgaSsrKQo+ICsJZm9y IChpID0gMDsgaSA8IEdFTjdfR1RfU0NSQVRDSF9SRUdfTlVNOyBpKyspCj4gIAkJcy0+Z3Rfc2Ny YXRjaFtpXSA9IEk5MTVfUkVBRChHRU43X0dUX1NDUkFUQ0goaSkpOwoKVGhlIGFib3ZlIHR3byBo dW5rcyBhcmUgaW4gdGhlIHdyb25nIHBhdGNoLgoKPiAgCj4gIAkvKiBHVCBTQSBDWiBkb21haW4s IDB4MTAwMDAwLTB4MTM4MTI0ICovCj4gQEAgLTIyMTgsNyArMjMwOSw3IEBAIHN0YXRpYyB2b2lk IHZsdl9zYXZlX2d1bml0X3MwaXhfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICAKPiAgc3RhdGljIHZvaWQgdmx2X3Jlc3RvcmVfZ3VuaXRfczBpeF9zdGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAtCXN0cnVjdCB2bHZfczBpeF9z dGF0ZSAqcyA9ICZkZXZfcHJpdi0+dmx2X3MwaXhfc3RhdGU7Cj4gKwlzdHJ1Y3Qgdmx2X3MwaXhf c3RhdGUgKnMgPSBkZXZfcHJpdi0+czBpeF9zdGF0ZTsKCkVhcmx5IHJldHVybiBvbiAhcyBoZXJl IGFzIHdlbGwsIGFuZCBjYWxsIHRoZSBmdW5jdGlvbiB1bmNvbmRpdGlvbmFsbHkuCgo+ICAJdTMy IHZhbDsKPiAgCWludCBpOwo+ICAKPiBAQCAtMjIyOSw3ICsyMzIwLDcgQEAgc3RhdGljIHZvaWQg dmx2X3Jlc3RvcmVfZ3VuaXRfczBpeF9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIAlJOTE1X1dSSVRFKEdFTjdfR0ZYX1BFTkRfVExCMCwJcy0+Z2Z4X3BlbmRfdGxi MCk7Cj4gIAlJOTE1X1dSSVRFKEdFTjdfR0ZYX1BFTkRfVExCMSwJcy0+Z2Z4X3BlbmRfdGxiMSk7 Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocy0+bHJhX2xpbWl0cyk7IGkrKykK PiArCWZvciAoaSA9IDA7IGkgPCBHRU43X0xSQV9MSU1JVFNfUkVHX05VTTsgaSsrKQo+ICAJCUk5 MTVfV1JJVEUoR0VON19MUkFfTElNSVRTKGkpLCBzLT5scmFfbGltaXRzW2ldKTsKPiAgCj4gIAlJ OTE1X1dSSVRFKEdFTjdfTUVESUFfTUFYX1JFUV9DT1VOVCwgcy0+bWVkaWFfbWF4X3JlcV9jb3Vu dCk7Cj4gQEAgLTIyNzMsNyArMjM2NCw3IEBAIHN0YXRpYyB2b2lkIHZsdl9yZXN0b3JlX2d1bml0 X3MwaXhfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJSTkxNV9X UklURShHRU42X1BNSU1SLAkJcy0+cG1faW1yKTsKPiAgCUk5MTVfV1JJVEUoR0VONl9QTUlFUiwJ CXMtPnBtX2llcik7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocy0+Z3Rfc2Ny YXRjaCk7IGkrKykKPiArCWZvciAoaSA9IDA7IGkgPCBHRU43X0dUX1NDUkFUQ0hfUkVHX05VTTsg aSsrKQo+ICAJCUk5MTVfV1JJVEUoR0VON19HVF9TQ1JBVENIKGkpLCBzLT5ndF9zY3JhdGNoW2ld KTsKClRoZSBhYm92ZSB0d28gaHVua3MgYXJlIGluIHRoZSB3cm9uZyBwYXRjaC4KCj4gIAo+ICAJ LyogR1QgU0EgQ1ogZG9tYWluLCAweDEwMDAwMC0weDEzODEyNCAqLwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IGluZGV4IGM2NzIyZDU0Y2NkNS4uOWI0MWYyMjA5YjY5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gQEAgLTUyNyw2OCArNTI3LDYgQEAgc3RydWN0IGk5MTVfc3VzcGVu ZF9zYXZlZF9yZWdpc3RlcnMgewo+ICAJdTE2IHNhdmVHQ0RHTUJVUzsKPiAgfTsKPiAgCj4gLXN0 cnVjdCB2bHZfczBpeF9zdGF0ZSB7Cj4gLQkvKiBHQU0gKi8KPiAtCXUzMiB3cl93YXRlcm1hcms7 Cj4gLQl1MzIgZ2Z4X3ByaW9fY3RybDsKPiAtCXUzMiBhcmJfbW9kZTsKPiAtCXUzMiBnZnhfcGVu ZF90bGIwOwo+IC0JdTMyIGdmeF9wZW5kX3RsYjE7Cj4gLQl1MzIgbHJhX2xpbWl0c1tHRU43X0xS QV9MSU1JVFNfUkVHX05VTV07Cj4gLQl1MzIgbWVkaWFfbWF4X3JlcV9jb3VudDsKPiAtCXUzMiBn ZnhfbWF4X3JlcV9jb3VudDsKPiAtCXUzMiByZW5kZXJfaHdzcDsKPiAtCXUzMiBlY29jaGs7Cj4g LQl1MzIgYnNkX2h3c3A7Cj4gLQl1MzIgYmx0X2h3c3A7Cj4gLQl1MzIgdGxiX3JkX2FkZHI7Cj4g LQo+IC0JLyogTUJDICovCj4gLQl1MzIgZzNkY3RsOwo+IC0JdTMyIGdzY2tnY3RsOwo+IC0JdTMy IG1iY3RsOwo+IC0KPiAtCS8qIEdDUCAqLwo+IC0JdTMyIHVjZ2N0bDE7Cj4gLQl1MzIgdWNnY3Rs MzsKPiAtCXUzMiByY2djdGwxOwo+IC0JdTMyIHJjZ2N0bDI7Cj4gLQl1MzIgcnN0Y3RsOwo+IC0J dTMyIG1pc2NjcGN0bDsKPiAtCj4gLQkvKiBHUE0gKi8KPiAtCXUzMiBnZnhwYXVzZTsKPiAtCXUz MiBycGRldWh3dGM7Cj4gLQl1MzIgcnBkZXVjOwo+IC0JdTMyIGVjb2J1czsKPiAtCXUzMiBwd3Jk d251cGN0bDsKPiAtCXUzMiBycF9kb3duX3RpbWVvdXQ7Cj4gLQl1MzIgcnBfZGV1Y3N3Owo+IC0J dTMyIHJjdWJtYWJkdG1yOwo+IC0JdTMyIHJjZWRhdGE7Cj4gLQl1MzIgc3BhcmUyZ2g7Cj4gLQo+ IC0JLyogRGlzcGxheSAxIENaIGRvbWFpbiAqLwo+IC0JdTMyIGd0X2ltcjsKPiAtCXUzMiBndF9p ZXI7Cj4gLQl1MzIgcG1faW1yOwo+IC0JdTMyIHBtX2llcjsKPiAtCXUzMiBndF9zY3JhdGNoW0dF TjdfR1RfU0NSQVRDSF9SRUdfTlVNXTsKPiAtCj4gLQkvKiBHVCBTQSBDWiBkb21haW4gKi8KPiAt CXUzMiB0aWxlY3RsOwo+IC0JdTMyIGd0X2ZpZm9jdGw7Cj4gLQl1MzIgZ3RsY193YWtlX2N0cmw7 Cj4gLQl1MzIgZ3RsY19zdXJ2aXZlOwo+IC0JdTMyIHBtd2dpY3o7Cj4gLQo+IC0JLyogRGlzcGxh eSAyIENaIGRvbWFpbiAqLwo+IC0JdTMyIGd1X2N0bDA7Cj4gLQl1MzIgZ3VfY3RsMTsKPiAtCXUz MiBwY2JyOwo+IC0JdTMyIGNsb2NrX2dhdGVfZGlzMjsKPiAtfTsKPiAtCj4gIHN0cnVjdCBpbnRl bF9ycHNfZWkgewo+ICAJa3RpbWVfdCBrdGltZTsKPiAgCXUzMiByZW5kZXJfYzA7Cj4gQEAgLTE2 MjIsNyArMTU2MCw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiAgCXUzMiBzdXNwZW5k X2NvdW50Owo+ICAJYm9vbCBwb3dlcl9kb21haW5zX3N1c3BlbmRlZDsKPiAgCXN0cnVjdCBpOTE1 X3N1c3BlbmRfc2F2ZWRfcmVnaXN0ZXJzIHJlZ2ZpbGU7Cj4gLQlzdHJ1Y3Qgdmx2X3MwaXhfc3Rh dGUgdmx2X3MwaXhfc3RhdGU7Cj4gKwl2b2lkICpzMGl4X3N0YXRlOwoKSSdkIGtlZXAgdGhlIHZs dl8gcHJlZml4IGluIHRoZSBtZW1iZXIgbmFtZS4KCkJSLApKYW5pLgoKCj4gIAo+ICAJZW51bSB7 Cj4gIAkJSTkxNV9TQUdWX1VOS05PV04gPSAwLAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVu IFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4