From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: add onoff utility function Date: Thu, 14 Jan 2016 14:54:58 +0200 Message-ID: <20160114125458.GS23290@intel.com> References: <1452768814-29787-1-git-send-email-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 072056E9C7 for ; Thu, 14 Jan 2016 04:55:02 -0800 (PST) Content-Disposition: inline In-Reply-To: <1452768814-29787-1-git-send-email-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 T24gVGh1LCBKYW4gMTQsIDIwMTYgYXQgMTI6NTM6MzRQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gQWRkIGEgY29tbW9uIGZ1bmN0aW9uIHRvIHJldHVybiAib24iIG9yICJvZmYiIHN0cmlu ZyBiYXNlZCBvbiB0aGUKPiBhcmd1bWVudCwgYW5kIGRyb3AgdGhlIGxvY2FsIHZlcnNpb25zIG9m IGl0Lgo+IAo+IFRoaXMgaXMgdGhlIG9ub2ZmIHZlcnNpb24gb2YKPiAKPiBjb21taXQgNDJhOGNh NGNiNGE0OGRkYmY0MGU4ZWRiMjkxNDI1ZTc2YmNkYzIzMAo+IEF1dGhvcjogSmFuaSBOaWt1bGEg PGphbmkubmlrdWxhQGludGVsLmNvbT4KPiBEYXRlOiAgIFRodSBBdWcgMjcgMTY6MjM6MzAgMjAx NSArMDMwMAo+IAo+ICAgICBkcm0vaTkxNTogYWRkIHllc25vIHV0aWxpdHkgZnVuY3Rpb24KPiAK PiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgoKUmV2 aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgfCAgNiArKyst LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDUgKysrKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMzAgKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8 ICA5ICsrLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCAx MSArKysrKy0tLS0tLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDM0IGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGluZGV4IGYxN2EyYjBjMjQ5 My4uOTc1YWYzNTY4NTIxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTEzMzUs OCArMTMzNSw4IEBAIHN0YXRpYyBpbnQgdmx2X3dhaXRfZm9yX2d0X3dlbGxzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlEUk1fREVCVUdf S01TKCJ3YWl0aW5nIGZvciBHVCB3ZWxscyB0byBnbyAlcyAoJTA4eClcbiIsCj4gLQkJCXdhaXRf Zm9yX29uID8gIm9uIiA6ICJvZmYiLAo+IC0JCQlJOTE1X1JFQUQoVkxWX0dUTENfUFdfU1RBVFVT KSk7Cj4gKwkJICAgICAgb25vZmYod2FpdF9mb3Jfb24pLAo+ICsJCSAgICAgIEk5MTVfUkVBRChW TFZfR1RMQ19QV19TVEFUVVMpKTsKPiAgCj4gIAkvKgo+ICAJICogUkM2IHRyYW5zaXRpb25pbmcg Y2FuIGJlIGRlbGF5ZWQgdXAgdG8gMiBtc2VjIChzZWUKPiBAQCAtMTM0NSw3ICsxMzQ1LDcgQEAg c3RhdGljIGludCB2bHZfd2FpdF9mb3JfZ3Rfd2VsbHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICAJZXJyID0gd2FpdF9mb3IoQ09ORCwgMyk7Cj4gIAlpZiAoZXJyKQo+ICAJ CURSTV9FUlJPUigidGltZW91dCB3YWl0aW5nIGZvciBHVCB3ZWxscyB0byBnbyAlc1xuIiwKPiAt CQkJICB3YWl0X2Zvcl9vbiA/ICJvbiIgOiAib2ZmIik7Cj4gKwkJCSAgb25vZmYod2FpdF9mb3Jf b24pKTsKPiAgCj4gIAlyZXR1cm4gZXJyOwo+ICAjdW5kZWYgQ09ORAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IGluZGV4IDEwNGJkMTgwOTkzNi4uZWI3YmI5N2Y3MzE2IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gQEAgLTEwMiw2ICsxMDIsMTEgQEAgc3RhdGljIGlubGluZSBjb25z dCBjaGFyICp5ZXNubyhib29sIHYpCj4gIAlyZXR1cm4gdiA/ICJ5ZXMiIDogIm5vIjsKPiAgfQo+ ICAKPiArc3RhdGljIGlubGluZSBjb25zdCBjaGFyICpvbm9mZihib29sIHYpCj4gK3sKPiArCXJl dHVybiB2ID8gIm9uIiA6ICJvZmYiOwo+ICt9Cj4gKwo+ICBlbnVtIHBpcGUgewo+ICAJSU5WQUxJ RF9QSVBFID0gLTEsCj4gIAlQSVBFX0EgPSAwLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiBpbmRleCBhMDg3ODkyZGQ3OTcuLjBmNTJmNzE0MDJhMCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTE1MCwxMSArMTE1MCw2IEBAIHN0YXRpYyB2 b2lkIGludGVsX3dhaXRfZm9yX3BpcGVfb2ZmKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJ fQo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3QgY2hhciAqc3RhdGVfc3RyaW5nKGJvb2wgZW5hYmxl ZCkKPiAtewo+IC0JcmV0dXJuIGVuYWJsZWQgPyAib24iIDogIm9mZiI7Cj4gLX0KPiAtCj4gIC8q IE9ubHkgZm9yIHByZS1JTEsgY29uZmlncyAqLwo+ICB2b2lkIGFzc2VydF9wbGwoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCWVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRl KQo+IEBAIC0xMTY2LDcgKzExNjEsNyBAQCB2b2lkIGFzc2VydF9wbGwoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJY3VyX3N0YXRlID0gISEodmFsICYgRFBMTF9WQ09fRU5B QkxFKTsKPiAgCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4gIAkgICAgICJQ TEwgc3RhdGUgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwK PiAtCSAgICAgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwo+ ICsJCQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwo+ICB9Cj4gIAo+ICAvKiBYWFg6 IHRoZSBkc2kgcGxsIGlzIHNoYXJlZCBiZXR3ZWVuIE1JUEkgRFNJIHBvcnRzICovCj4gQEAgLTEx ODIsNyArMTE3Nyw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9kc2lfcGxsKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCBzdGF0ZSkKPiAgCWN1cl9zdGF0ZSA9IHZhbCAmIERT SV9QTExfVkNPX0VOOwo+ICAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPiAg CSAgICAgIkRTSSBQTEwgc3RhdGUgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJy ZW50ICVzKVxuIiwKPiAtCSAgICAgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1 cl9zdGF0ZSkpOwo+ICsJCQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwo+ICB9Cj4g ICNkZWZpbmUgYXNzZXJ0X2RzaV9wbGxfZW5hYmxlZChkKSBhc3NlcnRfZHNpX3BsbChkLCB0cnVl KQo+ICAjZGVmaW5lIGFzc2VydF9kc2lfcGxsX2Rpc2FibGVkKGQpIGFzc2VydF9kc2lfcGxsKGQs IGZhbHNlKQo+IEBAIC0xMjA2LDE0ICsxMjAxLDEzIEBAIHZvaWQgYXNzZXJ0X3NoYXJlZF9kcGxs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWJvb2wgY3VyX3N0YXRlOwo+ ICAJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgaHdfc3RhdGU7Cj4gIAo+IC0JaWYgKFdBUk4g KCFwbGwsCj4gLQkJICAiYXNzZXJ0aW5nIERQTEwgJXMgd2l0aCBubyBEUExMXG4iLCBzdGF0ZV9z dHJpbmcoc3RhdGUpKSkKPiArCWlmIChXQVJOKCFwbGwsICJhc3NlcnRpbmcgRFBMTCAlcyB3aXRo IG5vIERQTExcbiIsIG9ub2ZmKHN0YXRlKSkpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCWN1cl9zdGF0 ZSA9IHBsbC0+Z2V0X2h3X3N0YXRlKGRldl9wcml2LCBwbGwsICZod19zdGF0ZSk7Cj4gIAlJOTE1 X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAo+ICAJICAgICAiJXMgYXNzZXJ0aW9uIGZh aWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKPiAtCSAgICAgcGxsLT5uYW1lLCBz dGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7Cj4gKwkJCXBsbC0+ bmFtZSwgb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKPiAgfQo+ICAKPiAgc3RhdGlj IHZvaWQgYXNzZXJ0X2ZkaV90eChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g QEAgLTEyMzMsNyArMTIyNyw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9mZGlfdHgoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJfQo+ICAJSTkxNV9TVEFURV9XQVJOKGN1cl9z dGF0ZSAhPSBzdGF0ZSwKPiAgCSAgICAgIkZESSBUWCBzdGF0ZSBhc3NlcnRpb24gZmFpbHVyZSAo ZXhwZWN0ZWQgJXMsIGN1cnJlbnQgJXMpXG4iLAo+IC0JICAgICBzdGF0ZV9zdHJpbmcoc3RhdGUp LCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7Cj4gKwkJCW9ub2ZmKHN0YXRlKSwgb25vZmYoY3Vy X3N0YXRlKSk7Cj4gIH0KPiAgI2RlZmluZSBhc3NlcnRfZmRpX3R4X2VuYWJsZWQoZCwgcCkgYXNz ZXJ0X2ZkaV90eChkLCBwLCB0cnVlKQo+ICAjZGVmaW5lIGFzc2VydF9mZGlfdHhfZGlzYWJsZWQo ZCwgcCkgYXNzZXJ0X2ZkaV90eChkLCBwLCBmYWxzZSkKPiBAQCAtMTI0OCw3ICsxMjQyLDcgQEAg c3RhdGljIHZvaWQgYXNzZXJ0X2ZkaV9yeChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gIAljdXJfc3RhdGUgPSAhISh2YWwgJiBGRElfUlhfRU5BQkxFKTsKPiAgCUk5MTVfU1RB VEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4gIAkgICAgICJGREkgUlggc3RhdGUgYXNzZXJ0 aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKPiAtCSAgICAgc3RhdGVf c3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwo+ICsJCQlvbm9mZihzdGF0 ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwo+ICB9Cj4gICNkZWZpbmUgYXNzZXJ0X2ZkaV9yeF9lbmFi bGVkKGQsIHApIGFzc2VydF9mZGlfcngoZCwgcCwgdHJ1ZSkKPiAgI2RlZmluZSBhc3NlcnRfZmRp X3J4X2Rpc2FibGVkKGQsIHApIGFzc2VydF9mZGlfcngoZCwgcCwgZmFsc2UpCj4gQEAgLTEyODAs NyArMTI3NCw3IEBAIHZvaWQgYXNzZXJ0X2ZkaV9yeF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJY3VyX3N0YXRlID0gISEodmFsICYgRkRJX1JYX1BMTF9FTkFCTEUp Owo+ICAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPiAgCSAgICAgIkZESSBS WCBQTEwgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKPiAt CSAgICAgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwo+ICsJ CQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwo+ICB9Cj4gIAo+ICB2b2lkIGFzc2Vy dF9wYW5lbF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gQEAg LTEzMzgsNyArMTMzMiw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9jdXJzb3Ioc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUg IT0gc3RhdGUsCj4gIAkgICAgICJjdXJzb3Igb24gcGlwZSAlYyBhc3NlcnRpb24gZmFpbHVyZSAo ZXhwZWN0ZWQgJXMsIGN1cnJlbnQgJXMpXG4iLAo+IC0JICAgICBwaXBlX25hbWUocGlwZSksIHN0 YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKPiArCQkJcGlwZV9u YW1lKHBpcGUpLCBvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwo+ICB9Cj4gICNkZWZp bmUgYXNzZXJ0X2N1cnNvcl9lbmFibGVkKGQsIHApIGFzc2VydF9jdXJzb3IoZCwgcCwgdHJ1ZSkK PiAgI2RlZmluZSBhc3NlcnRfY3Vyc29yX2Rpc2FibGVkKGQsIHApIGFzc2VydF9jdXJzb3IoZCwg cCwgZmFsc2UpCj4gQEAgLTEzNjUsNyArMTM1OSw3IEBAIHZvaWQgYXNzZXJ0X3BpcGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCUk5MTVfU1RBVEVfV0FSTihjdXJf c3RhdGUgIT0gc3RhdGUsCj4gIAkgICAgICJwaXBlICVjIGFzc2VydGlvbiBmYWlsdXJlIChleHBl Y3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4gLQkgICAgIHBpcGVfbmFtZShwaXBlKSwgc3RhdGVf c3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwo+ICsJCQlwaXBlX25hbWUo cGlwZSksIG9ub2ZmKHN0YXRlKSwgb25vZmYoY3VyX3N0YXRlKSk7Cj4gIH0KPiAgCj4gIHN0YXRp YyB2b2lkIGFzc2VydF9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g QEAgLTEzNzgsNyArMTM3Miw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9wbGFuZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAljdXJfc3RhdGUgPSAhISh2YWwgJiBESVNQTEFZ X1BMQU5FX0VOQUJMRSk7Cj4gIAlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAo+ ICAJICAgICAicGxhbmUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50 ICVzKVxuIiwKPiAtCSAgICAgcGxhbmVfbmFtZShwbGFuZSksIHN0YXRlX3N0cmluZyhzdGF0ZSks IHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKPiArCQkJcGxhbmVfbmFtZShwbGFuZSksIG9ub2Zm KHN0YXRlKSwgb25vZmYoY3VyX3N0YXRlKSk7Cj4gIH0KPiAgCj4gICNkZWZpbmUgYXNzZXJ0X3Bs YW5lX2VuYWJsZWQoZCwgcCkgYXNzZXJ0X3BsYW5lKGQsIHAsIHRydWUpCj4gQEAgLTE2MzMyLDcg KzE2MzI2LDcgQEAgaW50ZWxfZGlzcGxheV9wcmludF9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfZXJyb3Jfc3RhdGVfYnVmICptLAo+ICAJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgaSkgewo+ ICAJCWVycl9wcmludGYobSwgIlBpcGUgWyVkXTpcbiIsIGkpOwo+ICAJCWVycl9wcmludGYobSwg IiAgUG93ZXI6ICVzXG4iLAo+IC0JCQkgICBlcnJvci0+cGlwZVtpXS5wb3dlcl9kb21haW5fb24g PyAib24iIDogIm9mZiIpOwo+ICsJCQkgICBvbm9mZihlcnJvci0+cGlwZVtpXS5wb3dlcl9kb21h aW5fb24pKTsKPiAgCQllcnJfcHJpbnRmKG0sICIgIFNSQzogJTA4eFxuIiwgZXJyb3ItPnBpcGVb aV0uc291cmNlKTsKPiAgCQllcnJfcHJpbnRmKG0sICIgIFNUQVQ6ICUwOHhcbiIsIGVycm9yLT5w aXBlW2ldLnN0YXQpOwo+ICAKPiBAQCAtMTYzNjAsNyArMTYzNTQsNyBAQCBpbnRlbF9kaXNwbGF5 X3ByaW50X2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4g IAkJZXJyX3ByaW50ZihtLCAiQ1BVIHRyYW5zY29kZXI6ICVjXG4iLAo+ICAJCQkgICB0cmFuc2Nv ZGVyX25hbWUoZXJyb3ItPnRyYW5zY29kZXJbaV0uY3B1X3RyYW5zY29kZXIpKTsKPiAgCQllcnJf cHJpbnRmKG0sICIgIFBvd2VyOiAlc1xuIiwKPiAtCQkJICAgZXJyb3ItPnRyYW5zY29kZXJbaV0u cG93ZXJfZG9tYWluX29uID8gIm9uIiA6ICJvZmYiKTsKPiArCQkJICAgb25vZmYoZXJyb3ItPnRy YW5zY29kZXJbaV0ucG93ZXJfZG9tYWluX29uKSk7Cj4gIAkJZXJyX3ByaW50ZihtLCAiICBDT05G OiAlMDh4XG4iLCBlcnJvci0+dHJhbnNjb2RlcltpXS5jb25mKTsKPiAgCQllcnJfcHJpbnRmKG0s ICIgIEhUT1RBTDogJTA4eFxuIiwgZXJyb3ItPnRyYW5zY29kZXJbaV0uaHRvdGFsKTsKPiAgCQll cnJfcHJpbnRmKG0sICIgIEhCTEFOSzogJTA4eFxuIiwgZXJyb3ItPnRyYW5zY29kZXJbaV0uaGJs YW5rKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCBjOGY1OGFiMWJhY2MuLjE3NjEy NTQ4YzU4ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0yMjM4LDExICsyMjM4 LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZWRwX2JhY2tsaWdodF9wb3dlcihzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJX2ludGVsX2VkcF9iYWNrbGlnaHRfb2ZmKGludGVs X2RwKTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlX3N0cmluZyhib29sIGVu YWJsZWQpCj4gLXsKPiAtCXJldHVybiBlbmFibGVkID8gIm9uIiA6ICJvZmYiOwo+IC19Cj4gLQo+ ICBzdGF0aWMgdm9pZCBhc3NlcnRfZHBfcG9ydChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBi b29sIHN0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9 IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiBAQCAtMjI1Miw3ICsyMjQ3LDcgQEAgc3RhdGlj IHZvaWQgYXNzZXJ0X2RwX3BvcnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgYm9vbCBzdGF0 ZSkKPiAgCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4gIAkJCSJEUCBwb3J0 ICVjIHN0YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIs Cj4gIAkJCXBvcnRfbmFtZShkaWdfcG9ydC0+cG9ydCksCj4gLQkJCXN0YXRlX3N0cmluZyhzdGF0 ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKPiArCQkJb25vZmYoc3RhdGUpLCBvbm9mZihj dXJfc3RhdGUpKTsKPiAgfQo+ICAjZGVmaW5lIGFzc2VydF9kcF9wb3J0X2Rpc2FibGVkKGQpIGFz c2VydF9kcF9wb3J0KChkKSwgZmFsc2UpCj4gIAo+IEBAIC0yMjYyLDcgKzIyNTcsNyBAQCBzdGF0 aWMgdm9pZCBhc3NlcnRfZWRwX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IGJvb2wgc3RhdGUpCj4gIAo+ICAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwK PiAgCQkJImVEUCBQTEwgc3RhdGUgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJy ZW50ICVzKVxuIiwKPiAtCQkJc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9z dGF0ZSkpOwo+ICsJCQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwo+ICB9Cj4gICNk ZWZpbmUgYXNzZXJ0X2VkcF9wbGxfZW5hYmxlZChkKSBhc3NlcnRfZWRwX3BsbCgoZCksIHRydWUp Cj4gICNkZWZpbmUgYXNzZXJ0X2VkcF9wbGxfZGlzYWJsZWQoZCkgYXNzZXJ0X2VkcF9wbGwoKGQp LCBmYWxzZSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCA5ZGY5ZTlhMjJmM2MuLjQ2 NWNhNzZkZjIwMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC00NTkwLDEzICs0 NTkwLDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX3ByaW50X3JjNl9pbmZvKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHUzMiBtb2RlKQo+ICAJfQo+ICAJaWYgKEhBU19SQzZwKGRldikpCj4gIAkJRFJN X0RFQlVHX0tNUygiRW5hYmxpbmcgUkM2IHN0YXRlczogUkM2ICVzIFJDNnAgJXMgUkM2cHAgJXNc biIsCj4gLQkJCSAgICAgIChtb2RlICYgR0VONl9SQ19DVExfUkM2X0VOQUJMRSkgPyAib24iIDog Im9mZiIsCj4gLQkJCSAgICAgIChtb2RlICYgR0VONl9SQ19DVExfUkM2cF9FTkFCTEUpID8gIm9u IiA6ICJvZmYiLAo+IC0JCQkgICAgICAobW9kZSAmIEdFTjZfUkNfQ1RMX1JDNnBwX0VOQUJMRSkg PyAib24iIDogIm9mZiIpOwo+ICsJCQkgICAgICBvbm9mZihtb2RlICYgR0VONl9SQ19DVExfUkM2 X0VOQUJMRSksCj4gKwkJCSAgICAgIG9ub2ZmKG1vZGUgJiBHRU42X1JDX0NUTF9SQzZwX0VOQUJM RSksCj4gKwkJCSAgICAgIG9ub2ZmKG1vZGUgJiBHRU42X1JDX0NUTF9SQzZwcF9FTkFCTEUpKTsK PiAgCj4gIAllbHNlCj4gIAkJRFJNX0RFQlVHX0tNUygiRW5hYmxpbmcgUkM2IHN0YXRlczogUkM2 ICVzXG4iLAo+IC0JCQkgICAgICAobW9kZSAmIEdFTjZfUkNfQ1RMX1JDNl9FTkFCTEUpID8gIm9u IiA6ICJvZmYiKTsKPiArCQkJICAgICAgb25vZmYobW9kZSAmIEdFTjZfUkNfQ1RMX1JDNl9FTkFC TEUpKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBzYW5pdGl6ZV9yYzZfb3B0aW9uKGNvbnN0IHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBlbmFibGVfcmM2KQo+IEBAIC00Nzc0LDggKzQ3NzQs NyBAQCBzdGF0aWMgdm9pZCBnZW45X2VuYWJsZV9yYzYoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgCS8qIDNhOiBFbmFibGUgUkM2ICovCj4gIAlpZiAoaW50ZWxfZW5hYmxlX3JjNihkZXYpICYg SU5URUxfUkM2X0VOQUJMRSkKPiAgCQlyYzZfbWFzayA9IEdFTjZfUkNfQ1RMX1JDNl9FTkFCTEU7 Cj4gLQlEUk1fSU5GTygiUkM2ICVzXG4iLCAocmM2X21hc2sgJiBHRU42X1JDX0NUTF9SQzZfRU5B QkxFKSA/Cj4gLQkJCSJvbiIgOiAib2ZmIik7Cj4gKwlEUk1fSU5GTygiUkM2ICVzXG4iLCBvbm9m ZihyYzZfbWFzayAmIEdFTjZfUkNfQ1RMX1JDNl9FTkFCTEUpKTsKPiAgCS8qIFdhUnNVc2VUaW1l b3V0TW9kZSAqLwo+ICAJaWYgKElTX1NLTF9SRVZJRChkZXYsIDAsIFNLTF9SRVZJRF9EMCkgfHwK PiAgCSAgICBJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURfQTEpKSB7Cj4gLS0gCj4gMi4x LjQKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK