From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 01/12] drm/i915: Store DIMM rank information as a number Date: Mon, 4 Mar 2019 18:32:40 +0200 Message-ID: <20190304163240.GY20097@intel.com> References: <20190225202907.731-1-ville.syrjala@linux.intel.com> <20190225202907.731-2-ville.syrjala@linux.intel.com> <87d0n6mx5d.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3BFCE89789 for ; Mon, 4 Mar 2019 16:32:44 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87d0n6mx5d.fsf@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 T24gTW9uLCBNYXIgMDQsIDIwMTkgYXQgMDY6MTc6NTBQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gTW9uLCAyNSBGZWIgMjAxOSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+Cj4gPiBMaWZlIHdpbGwgYmUgZWFzaWVyIGxhdGVy IGlmIHdlIGhhdmUgdGhlIHJhbmtzIHN0b3JlZAo+ID4gYXMgYSBiYXJlIG51bWJlci4KPiA+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyB8IDky ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggfCAxMSArKy0tCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRp b25zKCspLCA1OCBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ IGluZGV4IGM2MzU0ZjZjZGJkYi4uNDhjNmJjNDQwNzJkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwo+ID4gQEAgLTEwNjgsMjggKzEwNjgsMjggQEAgc3RhdGljIHZvaWQgaW50ZWxf c2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAg CWludGVsX2d2dF9zYW5pdGl6ZV9vcHRpb25zKGRldl9wcml2KTsKPiA+ICB9Cj4gPiAgCj4gPiAt c3RhdGljIGVudW0gZHJhbV9yYW5rIHNrbF9nZXRfZGltbV9yYW5rKHU4IHNpemUsIHUzMiByYW5r KQo+ID4gK3N0YXRpYyBpbnQgc2tsX2dldF9kaW1tX3JhbmtzKHU4IHNpemUsIHUzMiByYW5rKQo+ ID4gIHsKPiA+ICAJaWYgKHNpemUgPT0gMCkKPiA+IC0JCXJldHVybiBJOTE1X0RSQU1fUkFOS19J TlZBTElEOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgCWlmIChyYW5rID09IFNLTF9EUkFNX1JBTktf U0lOR0xFKQo+ID4gLQkJcmV0dXJuIEk5MTVfRFJBTV9SQU5LX1NJTkdMRTsKPiA+ICsJCXJldHVy biAxOwo+ID4gIAllbHNlIGlmIChyYW5rID09IFNLTF9EUkFNX1JBTktfRFVBTCkKPiA+IC0JCXJl dHVybiBJOTE1X0RSQU1fUkFOS19EVUFMOwo+ID4gKwkJcmV0dXJuIDI7Cj4gPiAgCj4gPiAtCXJl dHVybiBJOTE1X0RSQU1fUkFOS19JTlZBTElEOwo+ID4gKwlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAg Cj4gPiAgc3RhdGljIGJvb2wKPiA+IC1za2xfaXNfMTZnYl9kaW1tKGVudW0gZHJhbV9yYW5rIHJh bmssIHU4IHNpemUsIHU4IHdpZHRoKQo+ID4gK3NrbF9pc18xNmdiX2RpbW0odTggcmFua3MsIHU4 IHNpemUsIHU4IHdpZHRoKQo+ID4gIHsKPiA+IC0JaWYgKHJhbmsgPT0gSTkxNV9EUkFNX1JBTktf U0lOR0xFICYmIHdpZHRoID09IDggJiYgc2l6ZSA9PSAxNikKPiA+ICsJaWYgKHJhbmtzID09IDEg JiYgd2lkdGggPT0gOCAmJiBzaXplID09IDE2KQo+ID4gIAkJcmV0dXJuIHRydWU7Cj4gPiAtCWVs c2UgaWYgKHJhbmsgPT0gSTkxNV9EUkFNX1JBTktfRFVBTCAmJiB3aWR0aCA9PSA4ICYmIHNpemUg PT0gMzIpCj4gPiArCWVsc2UgaWYgKHJhbmtzID09IDIgJiYgd2lkdGggPT0gOCAmJiBzaXplID09 IDMyKQo+ID4gIAkJcmV0dXJuIHRydWU7Cj4gPiAtCWVsc2UgaWYgKHJhbmsgPT0gU0tMX0RSQU1f UkFOS19TSU5HTEUgJiYgd2lkdGggPT0gMTYgJiYgc2l6ZSA9PSA4KQo+ID4gKwllbHNlIGlmIChy YW5rcyA9PSAxICYmIHdpZHRoID09IDE2ICYmIHNpemUgPT0gOCkKPiA+ICAJCXJldHVybiB0cnVl Owo+ID4gLQllbHNlIGlmIChyYW5rID09IFNLTF9EUkFNX1JBTktfRFVBTCAmJiB3aWR0aCA9PSAx NiAmJiBzaXplID09IDE2KQo+ID4gKwllbHNlIGlmIChyYW5rcyA9PSAyICYmIHdpZHRoID09IDE2 ICYmIHNpemUgPT0gMTYpCj4gPiAgCQlyZXR1cm4gdHJ1ZTsKPiA+ICAKPiA+ICAJcmV0dXJuIGZh bHNlOwo+ID4gQEAgLTExMjAsMjggKzExMjAsMjQgQEAgc2tsX2RyYW1fZ2V0X2NoYW5uZWxfaW5m byhzdHJ1Y3QgZHJhbV9jaGFubmVsX2luZm8gKmNoLCB1MzIgdmFsKQo+ID4gIAo+ID4gIAl0bXBf bCA9IHZhbCAmIFNLTF9EUkFNX1JBTktfTUFTSzsKPiA+ICAJdG1wX3MgPSBzX3ZhbCAmIFNLTF9E UkFNX1JBTktfTUFTSzsKPiA+IC0JY2gtPmxfaW5mby5yYW5rID0gc2tsX2dldF9kaW1tX3Jhbmso Y2gtPmxfaW5mby5zaXplLCB0bXBfbCk7Cj4gPiAtCWNoLT5zX2luZm8ucmFuayA9IHNrbF9nZXRf ZGltbV9yYW5rKGNoLT5zX2luZm8uc2l6ZSwgdG1wX3MpOwo+ID4gLQo+ID4gLQlpZiAoY2gtPmxf aW5mby5yYW5rID09IEk5MTVfRFJBTV9SQU5LX0RVQUwgfHwKPiA+IC0JICAgIGNoLT5zX2luZm8u cmFuayA9PSBJOTE1X0RSQU1fUkFOS19EVUFMKQo+ID4gLQkJY2gtPnJhbmsgPSBJOTE1X0RSQU1f UkFOS19EVUFMOwo+ID4gLQllbHNlIGlmIChjaC0+bF9pbmZvLnJhbmsgPT0gSTkxNV9EUkFNX1JB TktfU0lOR0xFICYmCj4gPiAtCQkgY2gtPnNfaW5mby5yYW5rID09IEk5MTVfRFJBTV9SQU5LX1NJ TkdMRSkKPiA+IC0JCWNoLT5yYW5rID0gSTkxNV9EUkFNX1JBTktfRFVBTDsKPiA+ICsJY2gtPmxf aW5mby5yYW5rcyA9IHNrbF9nZXRfZGltbV9yYW5rcyhjaC0+bF9pbmZvLnNpemUsIHRtcF9sKTsK PiA+ICsJY2gtPnNfaW5mby5yYW5rcyA9IHNrbF9nZXRfZGltbV9yYW5rcyhjaC0+c19pbmZvLnNp emUsIHRtcF9zKTsKPiA+ICsKPiA+ICsJaWYgKGNoLT5sX2luZm8ucmFua3MgPT0gMiB8fCBjaC0+ c19pbmZvLnJhbmtzID09IDIpCj4gPiArCQljaC0+cmFua3MgPSAyOwo+ID4gKwllbHNlIGlmIChj aC0+bF9pbmZvLnJhbmtzID09IDEgJiYgY2gtPnNfaW5mby5yYW5rcyA9PSAxKQo+ID4gKwkJY2gt PnJhbmtzID0gMjsKPiA+ICAJZWxzZQo+ID4gLQkJY2gtPnJhbmsgPSBJOTE1X0RSQU1fUkFOS19T SU5HTEU7Cj4gPiArCQljaC0+cmFua3MgPSAxOwo+ID4gIAo+ID4gLQljaC0+aXNfMTZnYl9kaW1t ID0gc2tsX2lzXzE2Z2JfZGltbShjaC0+bF9pbmZvLnJhbmssIGNoLT5sX2luZm8uc2l6ZSwKPiA+ ICsJY2gtPmlzXzE2Z2JfZGltbSA9IHNrbF9pc18xNmdiX2RpbW0oY2gtPmxfaW5mby5yYW5rcywg Y2gtPmxfaW5mby5zaXplLAo+ID4gIAkJCQkJICAgIGNoLT5sX2luZm8ud2lkdGgpIHx8Cj4gPiAt CQkJICAgc2tsX2lzXzE2Z2JfZGltbShjaC0+c19pbmZvLnJhbmssIGNoLT5zX2luZm8uc2l6ZSwK PiA+ICsJCQkgICBza2xfaXNfMTZnYl9kaW1tKGNoLT5zX2luZm8ucmFua3MsIGNoLT5zX2luZm8u c2l6ZSwKPiA+ICAJCQkJCSAgICBjaC0+c19pbmZvLndpZHRoKTsKPiA+ICAKPiA+IC0JRFJNX0RF QlVHX0tNUygiKHNpemU6d2lkdGg6cmFuaykgTCglZEdCOlglZDolcykgUyglZEdCOlglZDolcylc biIsCj4gPiAtCQkgICAgICBjaC0+bF9pbmZvLnNpemUsIGNoLT5sX2luZm8ud2lkdGgsCj4gPiAt CQkgICAgICBjaC0+bF9pbmZvLnJhbmsgPyAiZHVhbCIgOiAic2luZ2xlIiwKPiA+IC0JCSAgICAg IGNoLT5zX2luZm8uc2l6ZSwgY2gtPnNfaW5mby53aWR0aCwKPiA+IC0JCSAgICAgIGNoLT5zX2lu Zm8ucmFuayA/ICJkdWFsIiA6ICJzaW5nbGUiKTsKPiAKPiBJIGRvbid0IHVuZGVyc3RhbmQgaG93 IHRoZSBhYm92ZSB0ZXJuYXJ5IG9wZXJhdG9ycyBjb3VsZCBldmVyIGhhdmUKPiBwcm9kdWNlZCB0 aGUgcmlnaHQgcmVzdWx0cyBiZWZvcmUuCgpHb29kIHBvaW50LiBJIGRpZG4ndCBldmVuIG5vdGlj ZSA6KQoKPiAKPiA+ICsJRFJNX0RFQlVHX0tNUygiKHNpemU6d2lkdGg6cmFua3MpIEwoJWRHQjpY JWQ6JWQpIFMoJWRHQjpYJWQ6JWQpXG4iLAo+ID4gKwkJICAgICAgY2gtPmxfaW5mby5zaXplLCBj aC0+bF9pbmZvLndpZHRoLCBjaC0+bF9pbmZvLnJhbmtzLAo+ID4gKwkJICAgICAgY2gtPnNfaW5m by5zaXplLCBjaC0+c19pbmZvLndpZHRoLCBjaC0+c19pbmZvLnJhbmtzKTsKPiAKPiAldSBpbnN0 ZWFkIG9mICVkPyBEaXR0byBmb3IgYWxsIGRlYnVnIHByaW50cy4KCkRvZXNuJ3QgcmVhbGx5IG1h dHRlciBmb3IgdGhlc2Ugc21hbGwgdmFsdWVzLiBCdXQgbm8gaGFybSBpbiAldSBlaXRoZXIKc28g bWlnaHQgYXMgd2VsbCBJIHN1cHBvc2UuCgo+IAo+IFJldmlld2VkLWJ5OiBKYW5pIE5pa3VsYSA8 amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+IAo+IAo+ID4gIAo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9 Cj4gPiBAQCAtMTE1NCw3ICsxMTUwLDcgQEAgaW50ZWxfaXNfZHJhbV9zeW1tZXRyaWModTMyIHZh bF9jaDAsIHUzMiB2YWxfY2gxLAo+ID4gIAkJKGNoMC0+c19pbmZvLnNpemUgPT0gMCB8fAo+ID4g IAkJIChjaDAtPmxfaW5mby5zaXplID09IGNoMC0+c19pbmZvLnNpemUgJiYKPiA+ICAJCSAgY2gw LT5sX2luZm8ud2lkdGggPT0gY2gwLT5zX2luZm8ud2lkdGggJiYKPiA+IC0JCSAgY2gwLT5sX2lu Zm8ucmFuayA9PSBjaDAtPnNfaW5mby5yYW5rKSkpOwo+ID4gKwkJICBjaDAtPmxfaW5mby5yYW5r cyA9PSBjaDAtPnNfaW5mby5yYW5rcykpKTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGludAo+ ID4gQEAgLTExODUsMTMgKzExODEsMTIgQEAgc2tsX2RyYW1fZ2V0X2NoYW5uZWxzX2luZm8oc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAkgKiB3aWxsIGJlIHNhbWUgYXMg aWYgc2luZ2xlIHJhbmsgbWVtb3J5LCBzbyBjb25zaWRlciBzaW5nbGUgcmFuawo+ID4gIAkgKiBt ZW1vcnkuCj4gPiAgCSAqLwo+ID4gLQlpZiAoY2gwLnJhbmsgPT0gSTkxNV9EUkFNX1JBTktfU0lO R0xFIHx8Cj4gPiAtCSAgICBjaDEucmFuayA9PSBJOTE1X0RSQU1fUkFOS19TSU5HTEUpCj4gPiAt CQlkcmFtX2luZm8tPnJhbmsgPSBJOTE1X0RSQU1fUkFOS19TSU5HTEU7Cj4gPiArCWlmIChjaDAu cmFua3MgPT0gMSB8fCBjaDEucmFua3MgPT0gMSkKPiA+ICsJCWRyYW1faW5mby0+cmFua3MgPSAx Owo+ID4gIAllbHNlCj4gPiAtCQlkcmFtX2luZm8tPnJhbmsgPSBtYXgoY2gwLnJhbmssIGNoMS5y YW5rKTsKPiA+ICsJCWRyYW1faW5mby0+cmFua3MgPSBtYXgoY2gwLnJhbmtzLCBjaDEucmFua3Mp Owo+ID4gIAo+ID4gLQlpZiAoZHJhbV9pbmZvLT5yYW5rID09IEk5MTVfRFJBTV9SQU5LX0lOVkFM SUQpIHsKPiA+ICsJaWYgKGRyYW1faW5mby0+cmFua3MgPT0gMCkgewo+ID4gIAkJRFJNX0lORk8o ImNvdWxkbid0IGdldCBtZW1vcnkgcmFuayBpbmZvcm1hdGlvblxuIik7Cj4gPiAgCQlyZXR1cm4g LUVJTlZBTDsKPiA+ICAJfQo+ID4gQEAgLTEyNjIsOCArMTI1Nyw3IEBAIGJ4dF9nZXRfZHJhbV9p bmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAJICogTm93IHJlYWQg ZWFjaCBEVU5JVDgvOS8xMC8xMSB0byBjaGVjayB0aGUgcmFuayBvZiBlYWNoIGRpbW1zLgo+ID4g IAkgKi8KPiA+ICAJZm9yIChpID0gQlhUX0RfQ1JfRFJQMF9EVU5JVF9TVEFSVDsgaSA8PSBCWFRf RF9DUl9EUlAwX0RVTklUX0VORDsgaSsrKSB7Cj4gPiAtCQl1OCBzaXplLCB3aWR0aDsKPiA+IC0J CWVudW0gZHJhbV9yYW5rIHJhbms7Cj4gPiArCQl1OCBzaXplLCB3aWR0aCwgcmFua3M7Cj4gPiAg CQl1MzIgdG1wOwo+ID4gIAo+ID4gIAkJdmFsID0gSTkxNV9SRUFEKEJYVF9EX0NSX0RSUDBfRFVO SVQoaSkpOwo+ID4gQEAgLTEyNzQsMTEgKzEyNjgsMTEgQEAgYnh0X2dldF9kcmFtX2luZm8oc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAkJdG1wID0gdmFsICYgQlhUX0RS QU1fUkFOS19NQVNLOwo+ID4gIAo+ID4gIAkJaWYgKHRtcCA9PSBCWFRfRFJBTV9SQU5LX1NJTkdM RSkKPiA+IC0JCQlyYW5rID0gSTkxNV9EUkFNX1JBTktfU0lOR0xFOwo+ID4gKwkJCXJhbmtzID0g MTsKPiA+ICAJCWVsc2UgaWYgKHRtcCA9PSBCWFRfRFJBTV9SQU5LX0RVQUwpCj4gPiAtCQkJcmFu ayA9IEk5MTVfRFJBTV9SQU5LX0RVQUw7Cj4gPiArCQkJcmFua3MgPSAyOwo+ID4gIAkJZWxzZQo+ ID4gLQkJCXJhbmsgPSBJOTE1X0RSQU1fUkFOS19JTlZBTElEOwo+ID4gKwkJCXJhbmtzID0gMDsK PiA+ICAKPiA+ICAJCXRtcCA9IHZhbCAmIEJYVF9EUkFNX1NJWkVfTUFTSzsKPiA+ICAJCWlmICh0 bXAgPT0gQlhUX0RSQU1fU0laRV80R0IpCj4gPiBAQCAtMTI5NiwyMiArMTI5MCwyMSBAQCBieHRf Z2V0X2RyYW1faW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgCj4g PiAgCQl0bXAgPSAodmFsICYgQlhUX0RSQU1fV0lEVEhfTUFTSykgPj4gQlhUX0RSQU1fV0lEVEhf U0hJRlQ7Cj4gPiAgCQl3aWR0aCA9ICgxIDw8IHRtcCkgKiA4Owo+ID4gLQkJRFJNX0RFQlVHX0tN UygiZHJhbSBzaXplOiVkR0Igd2lkdGg6WCVkIHJhbms6JXNcbiIsIHNpemUsCj4gPiAtCQkJICAg ICAgd2lkdGgsIHJhbmsgPT0gSTkxNV9EUkFNX1JBTktfU0lOR0xFID8gInNpbmdsZSIgOgo+ID4g LQkJCSAgICAgIHJhbmsgPT0gSTkxNV9EUkFNX1JBTktfRFVBTCA/ICJkdWFsIiA6ICJ1bmtub3du Iik7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJkcmFtIHNpemU6JWRHQiB3aWR0aDpYJWQgcmFua3M6 JWRcbiIsCj4gPiArCQkJICAgICAgc2l6ZSwgd2lkdGgsIHJhbmtzKTsKPiA+ICAKPiA+ICAJCS8q Cj4gPiAgCQkgKiBJZiBhbnkgb2YgdGhlIGNoYW5uZWwgaXMgc2luZ2xlIHJhbmsgY2hhbm5lbCwK PiA+ICAJCSAqIHdvcnN0IGNhc2Ugb3V0cHV0IHdpbGwgYmUgc2FtZSBhcyBpZiBzaW5nbGUgcmFu awo+ID4gIAkJICogbWVtb3J5LCBzbyBjb25zaWRlciBzaW5nbGUgcmFuayBtZW1vcnkuCj4gPiAg CQkgKi8KPiA+IC0JCWlmIChkcmFtX2luZm8tPnJhbmsgPT0gSTkxNV9EUkFNX1JBTktfSU5WQUxJ RCkKPiA+IC0JCQlkcmFtX2luZm8tPnJhbmsgPSByYW5rOwo+ID4gLQkJZWxzZSBpZiAocmFuayA9 PSBJOTE1X0RSQU1fUkFOS19TSU5HTEUpCj4gPiAtCQkJZHJhbV9pbmZvLT5yYW5rID0gSTkxNV9E UkFNX1JBTktfU0lOR0xFOwo+ID4gKwkJaWYgKGRyYW1faW5mby0+cmFua3MgPT0gMCkKPiA+ICsJ CQlkcmFtX2luZm8tPnJhbmtzID0gcmFua3M7Cj4gPiArCQllbHNlIGlmIChyYW5rcyA9PSAxKQo+ ID4gKwkJCWRyYW1faW5mby0+cmFua3MgPSAxOwo+ID4gIAl9Cj4gPiAgCj4gPiAtCWlmIChkcmFt X2luZm8tPnJhbmsgPT0gSTkxNV9EUkFNX1JBTktfSU5WQUxJRCkgewo+ID4gKwlpZiAoZHJhbV9p bmZvLT5yYW5rcyA9PSAwKSB7Cj4gPiAgCQlEUk1fSU5GTygiY291bGRuJ3QgZ2V0IG1lbW9yeSBy YW5rIGluZm9ybWF0aW9uXG4iKTsKPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gIAl9Cj4gPiBA QCAtMTMyOCw3ICsxMzIxLDcgQEAgaW50ZWxfZ2V0X2RyYW1faW5mbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiAgCWRyYW1faW5mby0+ dmFsaWQgPSBmYWxzZTsKPiA+IC0JZHJhbV9pbmZvLT5yYW5rID0gSTkxNV9EUkFNX1JBTktfSU5W QUxJRDsKPiA+ICsJZHJhbV9pbmZvLT5yYW5rcyA9IDA7Cj4gPiAgCWRyYW1faW5mby0+YmFuZHdp ZHRoX2ticHMgPSAwOwo+ID4gIAlkcmFtX2luZm8tPm51bV9jaGFubmVscyA9IDA7Cj4gPiAgCj4g PiBAQCAtMTM1OCw5ICsxMzUxLDggQEAgaW50ZWxfZ2V0X2RyYW1faW5mbyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgCQlzcHJpbnRmKGJhbmR3aWR0aF9zdHIsICJ1bmtu b3duIik7Cj4gPiAgCURSTV9ERUJVR19LTVMoIkRSQU0gYmFuZHdpZHRoOiVzLCB0b3RhbC1jaGFu bmVsczogJXVcbiIsCj4gPiAgCQkgICAgICBiYW5kd2lkdGhfc3RyLCBkcmFtX2luZm8tPm51bV9j aGFubmVscyk7Cj4gPiAtCURSTV9ERUJVR19LTVMoIkRSQU0gcmFuazogJXMgcmFuayAxNkdCLWRp bW06JXNcbiIsCj4gPiAtCQkgICAgICAoZHJhbV9pbmZvLT5yYW5rID09IEk5MTVfRFJBTV9SQU5L X0RVQUwpID8KPiA+IC0JCSAgICAgICJkdWFsIiA6ICJzaW5nbGUiLCB5ZXNubyhkcmFtX2luZm8t PmlzXzE2Z2JfZGltbSkpOwo+ID4gKwlEUk1fREVCVUdfS01TKCJEUkFNIHJhbmtzOiAlZCwgMTZH Qi1kaW1tOiVzXG4iLAo+ID4gKwkJICAgICAgZHJhbV9pbmZvLT5yYW5rcywgeWVzbm8oZHJhbV9p bmZvLT5pc18xNmdiX2RpbW0pKTsKPiA+ICB9Cj4gPiAgCj4gPiAgLyoqCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiA+IGluZGV4IGNjMDljYWYzODcwZS4uYzljYjEzYTZlZGFmIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gQEAgLTE4MzMsMTEgKzE4MzMsNyBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gPiAgCQlib29sIHZhbGlkOwo+ID4gIAkJYm9vbCBpc18x NmdiX2RpbW07Cj4gPiAgCQl1OCBudW1fY2hhbm5lbHM7Cj4gPiAtCQllbnVtIGRyYW1fcmFuayB7 Cj4gPiAtCQkJSTkxNV9EUkFNX1JBTktfSU5WQUxJRCA9IDAsCj4gPiAtCQkJSTkxNV9EUkFNX1JB TktfU0lOR0xFLAo+ID4gLQkJCUk5MTVfRFJBTV9SQU5LX0RVQUwKPiA+IC0JCX0gcmFuazsKPiA+ ICsJCXU4IHJhbmtzOwo+ID4gIAkJdTMyIGJhbmR3aWR0aF9rYnBzOwo+ID4gIAkJYm9vbCBzeW1t ZXRyaWNfbWVtb3J5Owo+ID4gIAl9IGRyYW1faW5mbzsKPiA+IEBAIC0yMDcxLDEwICsyMDY3LDkg QEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gIAo+ID4gIHN0cnVjdCBkcmFtX2NoYW5u ZWxfaW5mbyB7Cj4gPiAgCXN0cnVjdCBpbmZvIHsKPiA+IC0JCXU4IHNpemUsIHdpZHRoOwo+ID4g LQkJZW51bSBkcmFtX3JhbmsgcmFuazsKPiA+ICsJCXU4IHNpemUsIHdpZHRoLCByYW5rczsKPiA+ ICAJfSBsX2luZm8sIHNfaW5mbzsKPiA+IC0JZW51bSBkcmFtX3JhbmsgcmFuazsKPiA+ICsJdTgg cmFua3M7Cj4gPiAgCWJvb2wgaXNfMTZnYl9kaW1tOwo+ID4gIH07Cj4gCj4gLS0gCj4gSmFuaSBO aWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgoKLS0gClZpbGxlIFN5cmrD pGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=