From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Herrenschmidt Subject: Re: [PATCH] drm/ast: Fixed system hanged if disable P2A Date: Thu, 16 Feb 2017 17:43:22 +1100 Message-ID: <1487227402.23576.51.camel@au1.ibm.com> References: <1485395140-8230-1-git-send-email-yc_chen@aspeedtech.com> <1487217483.23576.46.camel@au1.ibm.com> <23509e42021b4d97a5b51846fc9be32e@TWMBX01.aspeed.com> Reply-To: benh@au1.ibm.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by gabe.freedesktop.org (Postfix) with ESMTPS id 213F36E28E for ; Thu, 16 Feb 2017 06:44:44 +0000 (UTC) Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v1G6ievc045041 for ; Thu, 16 Feb 2017 01:44:43 -0500 Received: from e23smtp09.au.ibm.com (e23smtp09.au.ibm.com [202.81.31.142]) by mx0a-001b2d01.pphosted.com with ESMTP id 28n5qr2rxg-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Thu, 16 Feb 2017 01:44:42 -0500 Received: from localhost by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 16 Feb 2017 16:44:21 +1000 Received: from d23relay08.au.ibm.com (d23relay08.au.ibm.com [9.185.71.33]) by d23dlp02.au.ibm.com (Postfix) with ESMTP id 92F202BB0059 for ; Thu, 16 Feb 2017 17:44:19 +1100 (EST) Received: from d23av06.au.ibm.com (d23av06.au.ibm.com [9.190.235.151]) by d23relay08.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v1G6iBn617236138 for ; Thu, 16 Feb 2017 17:44:19 +1100 Received: from d23av06.au.ibm.com (localhost [127.0.0.1]) by d23av06.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v1G6hlxb013227 for ; Thu, 16 Feb 2017 17:43:47 +1100 In-Reply-To: <23509e42021b4d97a5b51846fc9be32e@TWMBX01.aspeed.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: YC Chen , "dri-devel@lists.freedesktop.org" Cc: Russell Currey , "airlied@redhat.com" , "eich@suse.com" List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCAyMDE3LTAyLTE2IGF0IDA2OjM0ICswMDAwLCBZQyBDaGVuIHdyb3RlOgo+IEhpIEJl biwKPiBUaGlzIHNvbHV0aW9uIGhhZCBiZWVuIHByb3ZlZCBvbiB4ODYgcGxhdGZvcm0gYnV0IEkn bSBub3Qgc3VyZSBpZiBpdAo+IHdvcmtzIG9yIG5vdCBvbiBQT1dFUiBzeXN0ZW0gLgoKSXQgd2ls bCBvbmx5IHdvcmsgb24geDg2IHBsYXRmb3JtcyB0aGF0IGhhdmVuJ3QgY29uZmlndXJlZCB0aGVp cgpQQ0kgRXhwcmVzcyBpbiAiaGFyZGVuZWQiIG1vZGUgd2hlcmUgUENJZSBlcnJvcnMgY2F1c2Ug bWFjaGluZSBjaGVja3MKb3Igd29yc2UuCgpUaGF0IHNhaWQgdGhlcmUgaXNuJ3QgbXVjaCBJIGNh biBkbyBhYm91dCBpdCBmb3Igbm93LiBTbyBmb3IgUE9XRVIKcGxhdGZvcm1zIChhbmQgb3RoZXIg cGxhdGZvcm1zIHVzaW5nIGRldmljZS10cmVlKSwgSSBoYXZlIGEgcGF0Y2gKdGhhdCB3aWxsIGdl dCB0aGUgZGF0YSBmcm9tIHRoZXJlLgoKPiAgSWYgd2UgYWRkZWQgYSBkZWZpbml0aW9uIGluIFNP QyBzY3JhdGNoIHJlZ2lzdGVyIHRvIGluZm8gZHJtIGRyaXZlcgo+IHRoZSBQMkEgaXMgZGlzYWJs ZWQgYnkgQk1DIGZ3LCB0aGVuIGRybSBkcml2ZXIgd2lsbCBubyBuZWVkIHRvIGNoZWNrCj4gaXQg YnkgcmVhZGluZyAweGYwMHguIElzIGl0IGFjY2VwdGFibGU/CgpJdCB3b3VsZCBiZSBiZXR0ZXIg eWVzLiBQbGVhc2Ugc2VuZCBtZSBhIHBhdGNoIGFzIEkndmUgcmV3b3JrZWQgeW91cnMKYWxyZWFk eSAoc2VlIHdoYXQgaSdsbCBwb3N0IHRvbW9ycm93KS4gQWRkaXRpb25hbGx5LCBmb3IgZnV0dXJl CnNpbGljb24sIHBsZWFzZSBtYWtlIGFsbCB0aG9zZSBpbmZvIG5lY2Vzc2FyeSB0byBkZXRlY3Qg dGhlIFZSQU0KYW5kIHRoZSBQTEwgYXZhaWxhYmxlIHZpYSB0aGUgVkdBIHJlZ2lzdGVycyBzbyB0 aGUgYmFja2Rvb3IgaXNuJ3QKbmVlZGVkLgoKRm9yIGEgZnVsbCBQT1NUIHdlIGNhbiBzdGlsbCBy ZXF1aXJlIGl0IG9mIGNvdXJzZSBidXQgZm9yIHRoZSBub3JtYWwKY2FzZSB3ZSBzaG91bGQgYmUg YWJsZSB0byBnZXQgYWxsIHRoZSBpbmZvIG5lZWRlZCB2aWEgdGhlIG5vcm1hbCBWR0EKcmVnaXN0 ZXIgc3BhY2UuCgo+IEhlcmUgYXJlIHRoZSBmbG93Ogo+IElmIGRpc2FibGUgUDJBIGluIFNPQyBz Y3JhdGNoIHRoZW4gYXN0LT5EaXNhYmxlUDJBID0gdHJ1ZTsKPiBFbHNlIGlmIHRoZSB2YWx1ZSBv ZiAweGYwMHggaXMgbm90IDB4RkZGRl9GRkZGIHRoZW4gYXN0LT5EaXNhYmxlUDJBID0KPiBmYWxz ZTsKCkNoZWVycywKQmVuLgoKPiBSZWdhcmRzLAo+IAo+IFkuQy4gQ2hlbgo+IAo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogQmVuamFtaW4gSGVycmVuc2NobWlkdCBbbWFpbHRv OmJlbmhAYXUxLmlibS5jb21dwqAKPiBTZW50OiBUaHVyc2RheSwgRmVicnVhcnkgMTYsIDIwMTcg MTE6NTggQU0KPiBUbzogWUMgQ2hlbiA8eWNfY2hlbkBhc3BlZWR0ZWNoLmNvbT47IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBDYzogYWlybGllZEByZWRoYXQuY29tOyBlaWNoQHN1 c2UuY29tOyBSdXNzZWxsIEN1cnJleSA8cnVzY3VyQGF1MS5pYm0KPiAuY29tPgo+IFN1YmplY3Q6 IFJlOiBbUEFUQ0hdIGRybS9hc3Q6IEZpeGVkIHN5c3RlbSBoYW5nZWQgaWYgZGlzYWJsZSBQMkEK PiAKPiBPbiBUaHUsIDIwMTctMDEtMjYgYXQgMDk6NDUgKzA4MDAsIFkuQy4gQ2hlbiB3cm90ZToK PiA+IEZyb206ICJZLkMuIENoZW4iIDx5Y19jaGVuQGFzcGVlZHRlY2guY29tPgo+ID4gCj4gPiBU aGUgb3JpZ2luYWwgYXN0IGRyaXZlciB3aWxsIGFjY2VzcyBzb21lIEJNQyBjb25maWd1cmF0aW9u IHRocm91Z2gKPiA+IFAyQcKgCj4gPiBicmlkZ2UgdGhhdCBjYW4gYmUgZGlzYWJsZWQgc2luY2Ug QVNUMjMwMCBhbmQgYWZ0ZXIuCj4gPiBJdCB3aWxsIGNhdXNlIHN5c3RlbSBoYW5nZWQgaWYgUDJB IGJyaWRnZSBpcyBkaXNhYmxlZC4KPiA+IEhlcmUgaXMgdGhlIHVwZGF0ZSB0byBmaXggaXQuCj4g Cj4gV2lsbCB0aGlzIHdvcmsgZm9yIHVzIG9uIFBPV0VSID8gVGhlIHByb2JsZW0gd2Ugb2JzZXJ2 ZWQgaXMgdGhhdCBpZgo+IFAyQSBpcyBkaXNhYmxlZCwgdGhlIHJlYWQgZnJvbSBmMDB4IHNlZW1z IHRvIG5vdCByZXNwb25kLCBpZSwgd2UgZ2V0Cj4gYSBQQ0llIHRhcmdldCBhYm9ydCBvbiB0aGUg TU1JTywgbm90IDB4ZmZmZl9mZmZmLiBUaGF0IHRyaXBzIG91ciBIVwo+IGVycm9yIGRldGVjdGlv biBtZWNoYW5pc20gIkVFSCIgd2hpY2ggd2lsbCB0YWtlIG91dCB0aGUgZW50aXJlCj4gZGV2aWNl Lgo+IAo+IFJ1c3NlbGwgKENDKSBwcm9wb3NlZCBhIHBhdGNoIGEgd2hpbGUgYWdvIHRoYXQgc2Vl bXMgdG8gaGF2ZSBnb25lCj4gbm93aGVyZSB0aGF0IGFsbG93cyB0aGUgZHJpdmVyIHRvIHJldHJp ZXZlIGFsbCB0aGUgaW5mb3JtYXRpb24gaXQKPiBuZWVkcyBmcm9tIHRoZSBkZXZpY2UtdHJlZSBv biBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IGl0Lgo+IAo+IFRoYXQgYWxsb3dzIHVzIHRvIGdyYWIg dGhlIG5lY2Vzc2FyeSBpbmZvIGZyb20gZmlybXdhcmUgYmVmb3JlIHRoZQo+IGJyaWRnZSBpcyBj bG9zZWQgKG9yIHZpYSBzb21lIHNwZWNpZmljIEJNQyBpbnRlcmZhY2Ugd2UgaGF2ZSBpZiB3ZQo+ IGNsb3NlIHRoZSBicmlkZ2UpIGFuZCBwYXNzIGl0IHRvIExpbnV4Lgo+IAo+IEFueSByZWFzb24g dGhhdCBwYXRjaCBoYXNuJ3QgYmVlbiBtZXJnZWQgPyBEYXZlID8KPiAKPiBDaGVlcnMsCj4gQmVu Lgo+IAo+IAo+ID4gU2lnbmVkLW9mZi1ieTogWS5DLiBDaGVuIDx5Y19jaGVuQGFzcGVlZHRlY2gu Y29tPgo+ID4gLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5owqDCoHzCoMKg wqAxICsKPiA+IMKgZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5jIHwgMTU2ICsrKysrKysr KysrKysrKysrKysrKystLS0tLS0tCj4gPiAtLQo+ID4gLS0tLS0tLS0tLQo+ID4gwqBkcml2ZXJz L2dwdS9kcm0vYXN0L2FzdF9wb3N0LmMgfMKgwqAxOCArKystLQo+ID4gwqAzIGZpbGVzIGNoYW5n ZWQsIDk2IGluc2VydGlvbnMoKyksIDc5IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmjCoAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0v YXN0L2FzdF9kcnYuaCBpbmRleCA5MDgwMTFkLi43YWJkYTk0IDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3Qv YXN0X2Rydi5oCj4gPiBAQCAtMTEzLDYgKzExMyw3IEBAIHN0cnVjdCBhc3RfcHJpdmF0ZSB7Cj4g PiDCoAlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqIGNhY2hlX2ttYXA7Cj4gPiDCoAlpbnQgbmV4dF9j dXJzb3I7Cj4gPiDCoAlib29sIHN1cHBvcnRfd2lkZV9zY3JlZW47Cj4gPiArCWJvb2wgRGlzYWJs ZVAyQTsKPiA+IMKgCj4gPiDCoAllbnVtIGFzdF90eF9jaGlwIHR4X2NoaXBfdHlwZTsKPiA+IMKg CXU4IGRwNTAxX21heGNsazsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9tYWluLmPCoAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMgaW5kZXggZjc1 YzY0Mi4uYzM3NDY4NSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21h aW4uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5jCj4gPiBAQCAtMTI0 LDYgKzEyNCwxMSBAQCBzdGF0aWMgaW50IGFzdF9kZXRlY3RfY2hpcChzdHJ1Y3QgZHJtX2Rldmlj ZcKgCj4gPiAqZGV2LCBib29sICpuZWVkX3Bvc3QpCj4gPiDCoAl9IGVsc2UKPiA+IMKgCQkqbmVl ZF9wb3N0ID0gZmFsc2U7Cj4gPiDCoAo+ID4gKwkvKiBDaGVjayBQMkEgQWNjZXNzICovCj4gPiAr CWFzdC0+RGlzYWJsZVAyQSA9IHRydWU7Cj4gPiArCWRhdGEgPSBhc3RfcmVhZDMyKGFzdCwgMHhm MDA0KTsKPiA+ICsJaWYgKGRhdGEgIT0gMHhGRkZGRkZGRikgYXN0LT5EaXNhYmxlUDJBID0gZmFs c2U7Cj4gPiArCj4gPiDCoAkvKiBDaGVjayBpZiB3ZSBzdXBwb3J0IHdpZGUgc2NyZWVuICovCj4g PiDCoAlzd2l0Y2ggKGFzdC0+Y2hpcCkgewo+ID4gwqAJY2FzZSBBU1QxMTgwOgo+ID4gQEAgLTE0 MCwxNSArMTQ1LDE3IEBAIHN0YXRpYyBpbnQgYXN0X2RldGVjdF9jaGlwKHN0cnVjdCBkcm1fZGV2 aWNlwqAKPiA+ICpkZXYsIGJvb2wgKm5lZWRfcG9zdCkKPiA+IMKgCQkJYXN0LT5zdXBwb3J0X3dp ZGVfc2NyZWVuID0gdHJ1ZTsKPiA+IMKgCQllbHNlIHsKPiA+IMKgCQkJYXN0LT5zdXBwb3J0X3dp ZGVfc2NyZWVuID0gZmFsc2U7Cj4gPiAtCQkJLyogUmVhZCBTQ1U3YyAoc2lsaWNvbiByZXZpc2lv biByZWdpc3RlcikKPiA+ICovCj4gPiAtCQkJYXN0X3dyaXRlMzIoYXN0LCAweGYwMDQsIDB4MWU2 ZTAwMDApOwo+ID4gLQkJCWFzdF93cml0ZTMyKGFzdCwgMHhmMDAwLCAweDEpOwo+ID4gLQkJCWRh dGEgPSBhc3RfcmVhZDMyKGFzdCwgMHgxMjA3Yyk7Cj4gPiAtCQkJZGF0YSAmPSAweDMwMDsKPiA+ IC0JCQlpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgJiYgZGF0YSA9PSAweDApCj4gPiAvKgo+ID4g YXN0MTMwMCAqLwo+ID4gLQkJCQlhc3QtPnN1cHBvcnRfd2lkZV9zY3JlZW4gPSB0cnVlOwo+ID4g LQkJCWlmIChhc3QtPmNoaXAgPT0gQVNUMjQwMCAmJiBkYXRhID09IDB4MTAwKQo+ID4gLyogYXN0 MTQwMCAqLwo+ID4gLQkJCQlhc3QtPnN1cHBvcnRfd2lkZV9zY3JlZW4gPSB0cnVlOwo+ID4gKwkJ CWlmIChhc3QtPkRpc2FibGVQMkEgPT0gZmFsc2UpIHsKPiA+ICsJCQkJLyogUmVhZCBTQ1U3YyAo c2lsaWNvbiByZXZpc2lvbgo+ID4gcmVnaXN0ZXIpICovCj4gPiArCQkJCWFzdF93cml0ZTMyKGFz dCwgMHhmMDA0LAo+ID4gMHgxZTZlMDAwMCk7Cj4gPiArCQkJCWFzdF93cml0ZTMyKGFzdCwgMHhm MDAwLCAweDEpOwo+ID4gKwkJCQlkYXRhID0gYXN0X3JlYWQzMihhc3QsIDB4MTIwN2MpOwo+ID4g KwkJCQlkYXRhICY9IDB4MzAwOwo+ID4gKwkJCQlpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgJiYg ZGF0YQo+ID4gPT0KPiA+IDB4MCkgLyogYXN0MTMwMCAqLwo+ID4gKwkJCQkJYXN0LT5zdXBwb3J0 X3dpZGVfc2NyZWVuID0KPiA+IHRydWU7Cj4gPiArCQkJCWlmIChhc3QtPmNoaXAgPT0gQVNUMjQw MCAmJiBkYXRhCj4gPiA9PQo+ID4gMHgxMDApIC8qIGFzdDE0MDAgKi8KPiA+ICsJCQkJCWFzdC0+ c3VwcG9ydF93aWRlX3NjcmVlbiA9Cj4gPiB0cnVlOwo+ID4gKwkJCX0KPiA+IMKgCQl9Cj4gPiDC oAkJYnJlYWs7Cj4gPiDCoAl9Cj4gPiBAQCAtMjE2LDgwICsyMjMsODEgQEAgc3RhdGljIGludCBh c3RfZ2V0X2RyYW1faW5mbyhzdHJ1Y3QKPiA+IGRybV9kZXZpY2UKPiA+ICpkZXYpCj4gPiDCoAl1 aW50MzJfdCBkYXRhLCBkYXRhMjsKPiA+IMKgCXVpbnQzMl90IGRlbnVtLCBudW0sIGRpdiwgcmVm X3BsbDsKPiA+IMKgCj4gPiAtCWFzdF93cml0ZTMyKGFzdCwgMHhmMDA0LCAweDFlNmUwMDAwKTsK PiA+IC0JYXN0X3dyaXRlMzIoYXN0LCAweGYwMDAsIDB4MSk7Cj4gPiAtCj4gPiAtCj4gPiAtCWFz dF93cml0ZTMyKGFzdCwgMHgxMDAwMCwgMHhmYzYwMDMwOSk7Cj4gPiAtCj4gPiAtCWRvIHsKPiA+ IC0JCWlmIChwY2lfY2hhbm5lbF9vZmZsaW5lKGRldi0+cGRldikpCj4gPiAtCQkJcmV0dXJuIC1F SU87Cj4gPiAtCX0gd2hpbGUgKGFzdF9yZWFkMzIoYXN0LCAweDEwMDAwKSAhPSAweDAxKTsKPiA+ IC0JZGF0YSA9IGFzdF9yZWFkMzIoYXN0LCAweDEwMDA0KTsKPiA+IC0KPiA+IC0JaWYgKGRhdGEg JiAweDQwKQo+ID4gKwlpZiAoYXN0LT5EaXNhYmxlUDJBKQo+ID4gKwl7Cj4gPiDCoAkJYXN0LT5k cmFtX2J1c193aWR0aCA9IDE2Owo+ID4gKwkJYXN0LT5kcmFtX3R5cGUgPSBBU1RfRFJBTV8xR3gx NjsKPiA+ICsJCWFzdC0+bWNsayA9IDM5NjsKPiA+ICsJfQo+ID4gwqAJZWxzZQo+ID4gLQkJYXN0 LT5kcmFtX2J1c193aWR0aCA9IDMyOwo+ID4gKwl7Cj4gPiArCQlhc3Rfd3JpdGUzMihhc3QsIDB4 ZjAwNCwgMHgxZTZlMDAwMCk7Cj4gPiArCQlhc3Rfd3JpdGUzMihhc3QsIDB4ZjAwMCwgMHgxKTsK PiA+ICsJCWRhdGEgPSBhc3RfcmVhZDMyKGFzdCwgMHgxMDAwNCk7Cj4gPiArCj4gPiArCQlpZiAo ZGF0YSAmIDB4NDApCj4gPiArCQkJYXN0LT5kcmFtX2J1c193aWR0aCA9IDE2Owo+ID4gKwkJZWxz ZQo+ID4gKwkJCWFzdC0+ZHJhbV9idXNfd2lkdGggPSAzMjsKPiA+ICsKPiA+ICsJCWlmIChhc3Qt PmNoaXAgPT0gQVNUMjMwMCB8fCBhc3QtPmNoaXAgPT0gQVNUMjQwMCkKPiA+IHsKPiA+ICsJCQlz d2l0Y2ggKGRhdGEgJiAweDAzKSB7Cj4gPiArCQkJY2FzZSAwOgo+ID4gKwkJCQlhc3QtPmRyYW1f dHlwZSA9IEFTVF9EUkFNXzUxMk14MTY7Cj4gPiArCQkJCWJyZWFrOwo+ID4gKwkJCWRlZmF1bHQ6 Cj4gPiArCQkJY2FzZSAxOgo+ID4gKwkJCQlhc3QtPmRyYW1fdHlwZSA9IEFTVF9EUkFNXzFHeDE2 Owo+ID4gKwkJCQlicmVhazsKPiA+ICsJCQljYXNlIDI6Cj4gPiArCQkJCWFzdC0+ZHJhbV90eXBl ID0gQVNUX0RSQU1fMkd4MTY7Cj4gPiArCQkJCWJyZWFrOwo+ID4gKwkJCWNhc2UgMzoKPiA+ICsJ CQkJYXN0LT5kcmFtX3R5cGUgPSBBU1RfRFJBTV80R3gxNjsKPiA+ICsJCQkJYnJlYWs7Cj4gPiAr CQkJfQo+ID4gKwkJfSBlbHNlIHsKPiA+ICsJCQlzd2l0Y2ggKGRhdGEgJiAweDBjKSB7Cj4gPiAr CQkJY2FzZSAwOgo+ID4gKwkJCWNhc2UgNDoKPiA+ICsJCQkJYXN0LT5kcmFtX3R5cGUgPSBBU1Rf RFJBTV81MTJNeDE2Owo+ID4gKwkJCQlicmVhazsKPiA+ICsJCQljYXNlIDg6Cj4gPiArCQkJCWlm IChkYXRhICYgMHg0MCkKPiA+ICsJCQkJCWFzdC0+ZHJhbV90eXBlID0KPiA+IEFTVF9EUkFNXzFH eDE2Owo+ID4gKwkJCQllbHNlCj4gPiArCQkJCQlhc3QtPmRyYW1fdHlwZSA9Cj4gPiBBU1RfRFJB TV81MTJNeDMyOwo+ID4gKwkJCQlicmVhazsKPiA+ICsJCQljYXNlIDB4YzoKPiA+ICsJCQkJYXN0 LT5kcmFtX3R5cGUgPSBBU1RfRFJBTV8xR3gzMjsKPiA+ICsJCQkJYnJlYWs7Cj4gPiArCQkJfQo+ ID4gKwkJfQo+ID4gwqAKPiA+IC0JaWYgKGFzdC0+Y2hpcCA9PSBBU1QyMzAwIHx8IGFzdC0+Y2hp cCA9PSBBU1QyNDAwKSB7Cj4gPiAtCQlzd2l0Y2ggKGRhdGEgJiAweDAzKSB7Cj4gPiAtCQljYXNl IDA6Cj4gPiAtCQkJYXN0LT5kcmFtX3R5cGUgPSBBU1RfRFJBTV81MTJNeDE2Owo+ID4gLQkJCWJy ZWFrOwo+ID4gLQkJZGVmYXVsdDoKPiA+IC0JCWNhc2UgMToKPiA+IC0JCQlhc3QtPmRyYW1fdHlw ZSA9IEFTVF9EUkFNXzFHeDE2Owo+ID4gLQkJCWJyZWFrOwo+ID4gLQkJY2FzZSAyOgo+ID4gLQkJ CWFzdC0+ZHJhbV90eXBlID0gQVNUX0RSQU1fMkd4MTY7Cj4gPiAtCQkJYnJlYWs7Cj4gPiArCQlk YXRhID0gYXN0X3JlYWQzMihhc3QsIDB4MTAxMjApOwo+ID4gKwkJZGF0YTIgPSBhc3RfcmVhZDMy KGFzdCwgMHgxMDE3MCk7Cj4gPiArCQlpZiAoZGF0YTIgJiAweDIwMDApCj4gPiArCQkJcmVmX3Bs bCA9IDE0MzE4Owo+ID4gKwkJZWxzZQo+ID4gKwkJCXJlZl9wbGwgPSAxMjAwMDsKPiA+ICsKPiA+ ICsJCWRlbnVtID0gZGF0YSAmIDB4MWY7Cj4gPiArCQludW0gPSAoZGF0YSAmIDB4M2ZlMCkgPj4g NTsKPiA+ICsJCWRhdGEgPSAoZGF0YSAmIDB4YzAwMCkgPj4gMTQ7Cj4gPiArCQlzd2l0Y2ggKGRh dGEpIHsKPiA+IMKgCQljYXNlIDM6Cj4gPiAtCQkJYXN0LT5kcmFtX3R5cGUgPSBBU1RfRFJBTV80 R3gxNjsKPiA+IC0JCQlicmVhazsKPiA+IC0JCX0KPiA+IC0JfSBlbHNlIHsKPiA+IC0JCXN3aXRj aCAoZGF0YSAmIDB4MGMpIHsKPiA+IC0JCWNhc2UgMDoKPiA+IC0JCWNhc2UgNDoKPiA+IC0JCQlh c3QtPmRyYW1fdHlwZSA9IEFTVF9EUkFNXzUxMk14MTY7Cj4gPiArCQkJZGl2ID0gMHg0Owo+ID4g wqAJCQlicmVhazsKPiA+IC0JCWNhc2UgODoKPiA+IC0JCQlpZiAoZGF0YSAmIDB4NDApCj4gPiAt CQkJCWFzdC0+ZHJhbV90eXBlID0gQVNUX0RSQU1fMUd4MTY7Cj4gPiAtCQkJZWxzZQo+ID4gLQkJ CQlhc3QtPmRyYW1fdHlwZSA9IEFTVF9EUkFNXzUxMk14MzI7Cj4gPiArCQljYXNlIDI6Cj4gPiAr CQljYXNlIDE6Cj4gPiArCQkJZGl2ID0gMHgyOwo+ID4gwqAJCQlicmVhazsKPiA+IC0JCWNhc2Ug MHhjOgo+ID4gLQkJCWFzdC0+ZHJhbV90eXBlID0gQVNUX0RSQU1fMUd4MzI7Cj4gPiArCQlkZWZh dWx0Ogo+ID4gKwkJCWRpdiA9IDB4MTsKPiA+IMKgCQkJYnJlYWs7Cj4gPiDCoAkJfQo+ID4gKwkJ YXN0LT5tY2xrID0gcmVmX3BsbCAqIChudW0gKyAyKSAvIChkZW51bSArIDIpICoKPiA+IChkaXYK PiA+ICogMTAwMCk7Cj4gPiDCoAl9Cj4gPiAtCj4gPiAtCWRhdGEgPSBhc3RfcmVhZDMyKGFzdCwg MHgxMDEyMCk7Cj4gPiAtCWRhdGEyID0gYXN0X3JlYWQzMihhc3QsIDB4MTAxNzApOwo+ID4gLQlp ZiAoZGF0YTIgJiAweDIwMDApCj4gPiAtCQlyZWZfcGxsID0gMTQzMTg7Cj4gPiAtCWVsc2UKPiA+ IC0JCXJlZl9wbGwgPSAxMjAwMDsKPiA+IC0KPiA+IC0JZGVudW0gPSBkYXRhICYgMHgxZjsKPiA+ IC0JbnVtID0gKGRhdGEgJiAweDNmZTApID4+IDU7Cj4gPiAtCWRhdGEgPSAoZGF0YSAmIDB4YzAw MCkgPj4gMTQ7Cj4gPiAtCXN3aXRjaCAoZGF0YSkgewo+ID4gLQljYXNlIDM6Cj4gPiAtCQlkaXYg PSAweDQ7Cj4gPiAtCQlicmVhazsKPiA+IC0JY2FzZSAyOgo+ID4gLQljYXNlIDE6Cj4gPiAtCQlk aXYgPSAweDI7Cj4gPiAtCQlicmVhazsKPiA+IC0JZGVmYXVsdDoKPiA+IC0JCWRpdiA9IDB4MTsK PiA+IC0JCWJyZWFrOwo+ID4gLQl9Cj4gPiAtCWFzdC0+bWNsayA9IHJlZl9wbGwgKiAobnVtICsg MikgLyAoZGVudW0gKyAyKSAqIChkaXYgKgo+ID4gMTAwMCk7Cj4gPiDCoAlyZXR1cm4gMDsKPiA+ IMKgfQo+ID4gwqAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9wb3N0 LmPCoAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9wb3N0LmMgaW5kZXggODEwYzUxZC4u NTMzMWVlMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3Bvc3QuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfcG9zdC5jCj4gPiBAQCAtMzc5LDEyICsz NzksMjAgQEAgdm9pZCBhc3RfcG9zdF9ncHUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+IMKg CWFzdF9vcGVuX2tleShhc3QpOwo+ID4gwqAJYXN0X3NldF9kZWZfZXh0X3JlZyhkZXYpOwo+ID4g wqAKPiA+IC0JaWYgKGFzdC0+Y2hpcCA9PSBBU1QyMzAwIHx8IGFzdC0+Y2hpcCA9PSBBU1QyNDAw KQo+ID4gLQkJYXN0X2luaXRfZHJhbV8yMzAwKGRldik7Cj4gPiAtCWVsc2UKPiA+IC0JCWFzdF9p bml0X2RyYW1fcmVnKGRldik7Cj4gPiArCWlmIChhc3QtPkRpc2FibGVQMkEgPT0gZmFsc2UpCj4g PiArCXsKPiA+ICsJCWlmIChhc3QtPmNoaXAgPT0gQVNUMjMwMCB8fCBhc3QtPmNoaXAgPT0gQVNU MjQwMCkKPiA+ICsJCQlhc3RfaW5pdF9kcmFtXzIzMDAoZGV2KTsKPiA+ICsJCWVsc2UKPiA+ICsJ CQlhc3RfaW5pdF9kcmFtX3JlZyhkZXYpOwo+ID4gwqAKPiA+IC0JYXN0X2luaXRfM3JkdHgoZGV2 KTsKPiA+ICsJCWFzdF9pbml0XzNyZHR4KGRldik7Cj4gPiArCX0KPiA+ICsJZWxzZQo+ID4gKwl7 Cj4gPiArCQlpZiAoYXN0LT50eF9jaGlwX3R5cGUgIT0gQVNUX1RYX05PTkUpCj4gPiArCQkJYXN0 X3NldF9pbmRleF9yZWdfbWFzayhhc3QsCj4gPiBBU1RfSU9fQ1JUQ19QT1JULCAweGEzLCAweGNm LCAweDgwKTsJLyogRW5hYmxlIERWTyAqLwo+ID4gKwl9Cj4gPiDCoH0KPiA+IMKgCj4gPiDCoC8q IEFTVCAyMzAwIERSQU0gc2V0dGluZ3MgKi8KPiAKPiAKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=