From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yuan, Hang" Subject: Re: [PATCH v5] drm/i915/gvt: Change KVMGT as self load module Date: Thu, 6 Dec 2018 09:31:49 +0000 Message-ID: References: <20181204024028.11311-1-zhenyuw@linux.intel.com> <20181206080249.4859-1-zhenyuw@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181206080249.4859-1-zhenyuw@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Zhenyu Wang , "intel-gfx@lists.freedesktop.org" Cc: "intel-gvt-dev@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org TG9va3MgZ29vZCB0byBtZS4gVGhhbmtzLgoKUmV2aWV3ZWQtYnk6IFl1YW4sIEhhbmcgPGhhbmcu eXVhbkBpbnRlbC5jb20+Cgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogWmhl bnl1IFdhbmcgW21haWx0bzp6aGVueXV3QGxpbnV4LmludGVsLmNvbV0KPiBTZW50OiBUaHVyc2Rh eSwgRGVjZW1iZXIgNiwgMjAxOCA0OjAzIFBNCj4gVG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiBDYzogaW50ZWwtZ3Z0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFl1YW4s IEhhbmcgPGhhbmcueXVhbkBpbnRlbC5jb20+Owo+IEFsZXggV2lsbGlhbXNvbiA8YWxleC53aWxs aWFtc29uQHJlZGhhdC5jb20+Cj4gU3ViamVjdDogW1BBVENIIHY1XSBkcm0vaTkxNS9ndnQ6IENo YW5nZSBLVk1HVCBhcyBzZWxmIGxvYWQgbW9kdWxlCj4gCj4gVGhpcyB0cnlzIHRvIG1ha2UgJ2t2 bWd0JyBtb2R1bGUgYXMgc2VsZiBsb2FkYWJsZSBpbnN0ZWFkIG9mIGxvYWRpbmcgYnkKPiBpOTE1 L2d2dCBkZXZpY2UgbW9kZWwuIFNvIGh5cGVydmlzb3Igc3BlY2lmaWMgbW9kdWxlIGNvdWxkIGJl IHN0YW5kLWFsb25lLAo+IGUuZyBvbmx5IGFmdGVyIGxvYWRpbmcgaHlwZXJ2aXNvciBzcGVjaWZp YyBtb2R1bGUsIEdWVCBmZWF0dXJlIGNvdWxkIGJlCj4gZW5hYmxlZCB2aWEgc3BlY2lmaWMgaHlw ZXJ2aXNvciBpbnRlcmZhY2UsIGUuZyBWRklPL21kZXYuCj4gCj4gU28gdGhpcyB0cnlzIHRvIHVz ZSBoeXBlcnZpc29yIG1vZHVsZSByZWdpc3Rlci91bnJlZ2lzdGVyIGludGVyZmFjZSBmb3IgdGhh dC4KPiBIeXBlcnZpc29yIG1vZHVsZSBuZWVkcyB0byB0YWtlIGNhcmUgb2YgbW9kdWxlIHJlZmVy ZW5jZSBpdHNlbGYgd2hlbgo+IHdvcmtpbmcgZm9yIGh5cGVydmlzb3IgaW50ZXJmYWNlLCBlLmcg Zm9yIFZGSU8vbWRldiwgaHlwZXJ2aXNvciBtb2R1bGUKPiB3b3VsZCByZWZlcmVuY2UgY291bnRp bmcgbWRldiB3aGVuIG9wZW4gYW5kIHJlbGVhc2UuCj4gCj4gVGhpcyBtYWtlcyAna3ZtZ3QnIG1v ZHVsZSByZWFsbHkgc3BsaXQgZnJvbSBHVlQgZGV2aWNlIG1vZGVsLiBVc2VyIG5lZWRzIHRvCj4g bG9hZCAna3ZtZ3QnIHRvIGVuYWJsZSBWRklPL21kZXYgaW50ZXJmYWNlLgo+IAo+IHY1Ogo+IC0g cHV0IG1vZHVsZSByZWZlcmVuY2UgaW4gcmVnaXN0ZXIgZXJyb3IgcGF0aAo+IAo+IHY0Ogo+IC0g Zml4IGNoZWNrcGF0Y2ggd2FybmluZwo+IAo+IHYzOgo+IC0gRml4IG1vZHVsZSByZWZlcmVuY2Ug aGFuZGxpbmcgZm9yIGRldmljZSBvcGVuIGFuZCByZWxlYXNlLiBVbnVzZWQKPiAgIG1kZXYgZGV2 aWNlcyB3b3VsZCBiZSBjbGVhbmVkIHVwIGluIGRldmljZSB1bnJlZ2lzdGVyIHdoZW4gbW9kdWxl Cj4gdW5sb2FkLgo+IAo+IHYyOgo+IC0gRml4IGt2bWd0IG9yZGVyIGFmdGVyIGk5MTUgZm9yIGJ1 aWx0LWluIGNhc2UKPiAKPiBDYzogIll1YW4sIEhhbmciIDxoYW5nLnl1YW5AaW50ZWwuY29tPgo+ IENjOiBBbGV4IFdpbGxpYW1zb24gPGFsZXgud2lsbGlhbXNvbkByZWRoYXQuY29tPgo+IFNpZ25l ZC1vZmYtYnk6IFpoZW55dSBXYW5nIDx6aGVueXV3QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlICAgIHwgICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L2d2dC5jICAgICAgIHwgMTA4ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmggICAgICAgfCAgIDYgKy0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L2h5cGVyY2FsbC5oIHwgICA3ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9rdm1ndC5jICAgICB8ICAyMSArKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L21wdC5oICAgICAgIHwgICAzICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0 LmMgICAgIHwgICA5IC0tLQo+ICA4IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDgz IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtl ZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gaW5kZXggMGZmODc4Yzk5NGUy Li5hZTBkOTc1YTZmMzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IEBAIC0xOTUsMyArMTk1 LDQgQEAgZW5kaWYKPiAgaTkxNS15ICs9IGludGVsX2xwZV9hdWRpby5vCj4gCj4gIG9iai0kKENP TkZJR19EUk1fSTkxNSkgKz0gaTkxNS5vCj4gK29iai0kKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZN R1QpICs9IGd2dC9rdm1ndC5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2 dC9NYWtlZmlsZQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlCj4gaW5kZXgg YjAxNmRjNzUzZGI5Li4yNzFmYjQ2ZDRkZDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Z0L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2Vm aWxlCj4gQEAgLTcsNCArNywzIEBAIEdWVF9TT1VSQ0UgOj0gZ3Z0Lm8gYXBlcnR1cmVfZ20ubyBo YW5kbGVycy5vIHZncHUubwo+IHRyYWNlX3BvaW50cy5vIGZpcm13YXJlLm8gXAo+IAo+ICBjY2Zs YWdzLXkJCQkJKz0gLUkkKHNyYykgLUkkKHNyYykvJChHVlRfRElSKQo+ICBpOTE1LXkJCQkJCSs9 ICQoYWRkcHJlZml4ICQoR1ZUX0RJUikvLAo+ICQoR1ZUX1NPVVJDRSkpCj4gLW9iai0kKENPTkZJ R19EUk1fSTkxNV9HVlRfS1ZNR1QpCSs9ICQoR1ZUX0RJUikva3ZtZ3Qubwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvZ3Z0LmMKPiBpbmRleCBhNWI3NjBiN2JjMTAuLjRlODk0N2YzM2JkMCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndnQvZ3Z0LmMKPiBAQCAtMTg3LDUyICsxODcsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX2d2dF9vcHMgaW50ZWxfZ3Z0X29wcyA9IHsKPiAgCS53cml0ZV9wcm90ZWN0X2hhbmRs ZXIgPSBpbnRlbF92Z3B1X3BhZ2VfdHJhY2tfaGFuZGxlciwgIH07Cj4gCj4gLS8qKgo+IC0gKiBp bnRlbF9ndnRfaW5pdF9ob3N0IC0gTG9hZCBNUFQgbW9kdWxlcyBhbmQgZGV0ZWN0IGlmIHdlJ3Jl IHJ1bm5pbmcgaW4KPiBob3N0Cj4gLSAqCj4gLSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGF0 IHRoZSBkcml2ZXIgbG9hZGluZyBzdGFnZS4gSWYgZmFpbGVkIHRvIGZpbmQgYQo+IC0gKiBsb2Fk YWJsZSBNUFQgbW9kdWxlIG9yIGRldGVjdCBjdXJyZW50bHkgd2UncmUgcnVubmluZyBpbiBhIFZN LCB0aGVuCj4gR1ZULWcKPiAtICogd2lsbCBiZSBkaXNhYmxlZAo+IC0gKgo+IC0gKiBSZXR1cm5z Ogo+IC0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgaWYgZmFpbGVkLgo+ IC0gKgo+IC0gKi8KPiAtaW50IGludGVsX2d2dF9pbml0X2hvc3Qodm9pZCkKPiAtewo+IC0JaWYg KGludGVsX2d2dF9ob3N0LmluaXRpYWxpemVkKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCS8qIFhl biBET00gVSAqLwo+IC0JaWYgKHhlbl9kb21haW4oKSAmJiAheGVuX2luaXRpYWxfZG9tYWluKCkp Cj4gLQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQo+IC0JLyogVHJ5IHRvIGxvYWQgTVBUIG1vZHVsZXMg Zm9yIGh5cGVydmlzb3JzICovCj4gLQlpZiAoeGVuX2luaXRpYWxfZG9tYWluKCkpIHsKPiAtCQkv KiBJbiBYZW4gZG9tMCAqLwo+IC0JCWludGVsX2d2dF9ob3N0Lm1wdCA9IHRyeV90aGVuX3JlcXVl c3RfbW9kdWxlKAo+IC0JCQkJc3ltYm9sX2dldCh4ZW5ndF9tcHQpLCAieGVuZ3QiKTsKPiAtCQlp bnRlbF9ndnRfaG9zdC5oeXBlcnZpc29yX3R5cGUgPQo+IElOVEVMX0dWVF9IWVBFUlZJU09SX1hF TjsKPiAtCX0gZWxzZSB7Cj4gLSNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZN R1QpCj4gLQkJLyogbm90IGluIFhlbi4gVHJ5IEtWTUdUICovCj4gLQkJaW50ZWxfZ3Z0X2hvc3Qu bXB0ID0gdHJ5X3RoZW5fcmVxdWVzdF9tb2R1bGUoCj4gLQkJCQlzeW1ib2xfZ2V0KGt2bWd0X21w dCksICJrdm1ndCIpOwo+IC0JCWludGVsX2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZSA9Cj4gSU5U RUxfR1ZUX0hZUEVSVklTT1JfS1ZNOwo+IC0jZW5kaWYKPiAtCX0KPiAtCj4gLQkvKiBGYWlsIHRv IGxvYWQgTVBUIG1vZHVsZXMgLSBiYWlsIG91dCAqLwo+IC0JaWYgKCFpbnRlbF9ndnRfaG9zdC5t cHQpCj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQo+IC0JZ3Z0X2RiZ19jb3JlKCJSdW5uaW5nIHdp dGggaHlwZXJ2aXNvciAlcyBpbiBob3N0IG1vZGVcbiIsCj4gLQo+IAlzdXBwb3J0ZWRfaHlwZXJ2 aXNvcnNbaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlXSk7Cj4gLQo+IC0JaW50ZWxfZ3Z0 X2hvc3QuaW5pdGlhbGl6ZWQgPSB0cnVlOwo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gIHN0YXRp YyB2b2lkIGluaXRfZGV2aWNlX2luZm8oc3RydWN0IGludGVsX2d2dCAqZ3Z0KSAgewo+ICAJc3Ry dWN0IGludGVsX2d2dF9kZXZpY2VfaW5mbyAqaW5mbyA9ICZndnQtPmRldmljZV9pbmZvOyBAQCAt MzE2LDcKPiArMjcwLDYgQEAgdm9pZCBpbnRlbF9ndnRfY2xlYW5fZGV2aWNlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlyZXR1cm47Cj4gCj4gIAlpbnRlbF9ndnRfZGVz dHJveV9pZGxlX3ZncHUoZ3Z0LT5pZGxlX3ZncHUpOwo+IC0JaW50ZWxfZ3Z0X2h5cGVydmlzb3Jf aG9zdF9leGl0KCZkZXZfcHJpdi0+ZHJtLnBkZXYtPmRldik7Cj4gIAlpbnRlbF9ndnRfY2xlYW51 cF92Z3B1X3R5cGVfZ3JvdXBzKGd2dCk7Cj4gIAlpbnRlbF9ndnRfY2xlYW5fdmdwdV90eXBlcyhn dnQpOwo+IAo+IEBAIC0zNTIsMTMgKzMwNSw2IEBAIGludCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpCj4gIAlzdHJ1Y3QgaW50ZWxfdmdw dSAqdmdwdTsKPiAgCWludCByZXQ7Cj4gCj4gLQkvKgo+IC0JICogQ2Fubm90IGluaXRpYWxpemUg R1ZUIGRldmljZSB3aXRob3V0IGludGVsX2d2dF9ob3N0IGdldHMKPiAtCSAqIGluaXRpYWxpemVk IGZpcnN0Lgo+IC0JICovCj4gLQlpZiAoV0FSTl9PTighaW50ZWxfZ3Z0X2hvc3QuaW5pdGlhbGl6 ZWQpKQo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAgCWlmIChXQVJOX09OKGRldl9wcml2LT5n dnQpKQo+ICAJCXJldHVybiAtRUVYSVNUOwo+IAo+IEBAIC00MjAsMTMgKzM2Niw2IEBAIGludCBp bnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYp Cj4gIAkJZ290byBvdXRfY2xlYW5fdHlwZXM7Cj4gIAl9Cj4gCj4gLQlyZXQgPSBpbnRlbF9ndnRf aHlwZXJ2aXNvcl9ob3N0X2luaXQoJmRldl9wcml2LT5kcm0ucGRldi0+ZGV2LCBndnQsCj4gLQkJ CQkmaW50ZWxfZ3Z0X29wcyk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJZ3Z0X2VycigiZmFpbGVkIHRv IHJlZ2lzdGVyIGd2dC1nIGhvc3QgZGV2aWNlOiAlZFxuIiwgcmV0KTsKPiAtCQlnb3RvIG91dF9j bGVhbl90eXBlczsKPiAtCX0KPiAtCj4gIAl2Z3B1ID0gaW50ZWxfZ3Z0X2NyZWF0ZV9pZGxlX3Zn cHUoZ3Z0KTsKPiAgCWlmIChJU19FUlIodmdwdSkpIHsKPiAgCQlyZXQgPSBQVFJfRVJSKHZncHUp Owo+IEBAIC00NDEsNiArMzgwLDggQEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdikKPiAKPiAgCWd2dF9kYmdfY29yZSgiZ3Z0IGRl dmljZSBpbml0aWFsaXphdGlvbiBpcyBkb25lXG4iKTsKPiAgCWRldl9wcml2LT5ndnQgPSBndnQ7 Cj4gKwlpbnRlbF9ndnRfaG9zdC5kZXYgPSAmZGV2X3ByaXYtPmRybS5wZGV2LT5kZXY7Cj4gKwlp bnRlbF9ndnRfaG9zdC5pbml0aWFsaXplZCA9IHRydWU7Cj4gIAlyZXR1cm4gMDsKPiAKPiAgb3V0 X2NsZWFuX3R5cGVzOgo+IEBAIC00NjcsNiArNDA4LDQ1IEBAIGludCBpbnRlbF9ndnRfaW5pdF9k ZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpCj4gIAlyZXR1cm4gcmV0 Owo+ICB9Cj4gCj4gLSNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZNR1QpCj4g LU1PRFVMRV9TT0ZUREVQKCJwcmU6IGt2bWd0Iik7Cj4gLSNlbmRpZgo+ICtpbnQKPiAraW50ZWxf Z3Z0X3JlZ2lzdGVyX2h5cGVydmlzb3Ioc3RydWN0IGludGVsX2d2dF9tcHQgKm0pIHsKPiArCWlu dCByZXQ7Cj4gKwl2b2lkICpndnQ7Cj4gKwo+ICsJaWYgKCFpbnRlbF9ndnRfaG9zdC5pbml0aWFs aXplZCkKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlpZiAobS0+dHlwZSAhPSBJTlRFTF9H VlRfSFlQRVJWSVNPUl9LVk0gJiYKPiArCSAgICBtLT50eXBlICE9IElOVEVMX0dWVF9IWVBFUlZJ U09SX1hFTikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwkvKiBHZXQgYSByZWZlcmVuY2Ug Zm9yIGRldmljZSBtb2RlbCBtb2R1bGUgKi8KPiArCWlmICghdHJ5X21vZHVsZV9nZXQoVEhJU19N T0RVTEUpKQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiArCWludGVsX2d2dF9ob3N0Lm1wdCA9 IG07Cj4gKwlpbnRlbF9ndnRfaG9zdC5oeXBlcnZpc29yX3R5cGUgPSBtLT50eXBlOwo+ICsJZ3Z0 ID0gKHZvaWQgKilrZGV2X3RvX2k5MTUoaW50ZWxfZ3Z0X2hvc3QuZGV2KS0+Z3Z0Owo+ICsKPiAr CXJldCA9IGludGVsX2d2dF9oeXBlcnZpc29yX2hvc3RfaW5pdChpbnRlbF9ndnRfaG9zdC5kZXYs IGd2dCwKPiArCQkJCQkgICAgICZpbnRlbF9ndnRfb3BzKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4g KwkJZ3Z0X2VycigiRmFpbGVkIHRvIGluaXQgJXMgaHlwZXJ2aXNvciBtb2R1bGVcbiIsCj4gKwo+ IAlzdXBwb3J0ZWRfaHlwZXJ2aXNvcnNbaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlXSk7 Cj4gKwkJbW9kdWxlX3B1dChUSElTX01PRFVMRSk7Cj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwl9 Cj4gKwlndnRfZGJnX2NvcmUoIlJ1bm5pbmcgd2l0aCBoeXBlcnZpc29yICVzIGluIGhvc3QgbW9k ZVxuIiwKPiArCQkgICAgIHN1cHBvcnRlZF9oeXBlcnZpc29yc1tpbnRlbF9ndnRfaG9zdC5oeXBl cnZpc29yX3R5cGVdKTsKPiArCXJldHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGlu dGVsX2d2dF9yZWdpc3Rlcl9oeXBlcnZpc29yKTsKPiArCj4gK3ZvaWQKPiAraW50ZWxfZ3Z0X3Vu cmVnaXN0ZXJfaHlwZXJ2aXNvcih2b2lkKQo+ICt7Cj4gKwlpbnRlbF9ndnRfaHlwZXJ2aXNvcl9o b3N0X2V4aXQoaW50ZWxfZ3Z0X2hvc3QuZGV2KTsKPiArCW1vZHVsZV9wdXQoVEhJU19NT0RVTEUp Owo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGludGVsX2d2dF91bnJlZ2lzdGVyX2h5cGVydmlz b3IpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKPiBpbmRleCBiNGFiMWRhZDAxNDMuLjhhNGNmOTk1 ZDc1NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKPiBAQCAtNTIsMTIgKzUyLDggQEAKPiAK PiAgI2RlZmluZSBHVlRfTUFYX1ZHUFUgOAo+IAo+IC1lbnVtIHsKPiAtCUlOVEVMX0dWVF9IWVBF UlZJU09SX1hFTiA9IDAsCj4gLQlJTlRFTF9HVlRfSFlQRVJWSVNPUl9LVk0sCj4gLX07Cj4gLQo+ ICBzdHJ1Y3QgaW50ZWxfZ3Z0X2hvc3Qgewo+ICsJc3RydWN0IGRldmljZSAqZGV2Owo+ICAJYm9v bCBpbml0aWFsaXplZDsKPiAgCWludCBoeXBlcnZpc29yX3R5cGU7Cj4gIAlzdHJ1Y3QgaW50ZWxf Z3Z0X21wdCAqbXB0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlw ZXJjYWxsLmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oeXBlcmNhbGwuaAo+IGluZGV4 IGU0OWE5MjQ3ZWQ3OC4uNTA3OTg4NjhhYjE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9oeXBlcmNhbGwuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9o eXBlcmNhbGwuaAo+IEBAIC0zMywxMSArMzMsMTcgQEAKPiAgI2lmbmRlZiBfR1ZUX0hZUEVSQ0FM TF9IXwo+ICAjZGVmaW5lIF9HVlRfSFlQRVJDQUxMX0hfCj4gCj4gK2VudW0gaHlwZXJ2aXNvcl90 eXBlIHsKPiArCUlOVEVMX0dWVF9IWVBFUlZJU09SX1hFTiA9IDAsCj4gKwlJTlRFTF9HVlRfSFlQ RVJWSVNPUl9LVk0sCj4gK307Cj4gKwo+ICAvKgo+ICAgKiBTcGVjaWZpYyBHVlQtZyBNUFQgbW9k dWxlcyBmdW5jdGlvbiBjb2xsZWN0aW9ucy4gQ3VycmVudGx5IEdWVC1nCj4gc3VwcG9ydHMKPiAg ICogYm90aCBYZW4gYW5kIEtWTSBieSBwcm92aWRpbmcgZGVkaWNhdGVkIGh5cGVydmlzb3ItcmVs YXRlZCBNUFQKPiBtb2R1bGVzLgo+ICAgKi8KPiAgc3RydWN0IGludGVsX2d2dF9tcHQgewo+ICsJ ZW51bSBoeXBlcnZpc29yX3R5cGUgdHlwZTsKPiAgCWludCAoKmhvc3RfaW5pdCkoc3RydWN0IGRl dmljZSAqZGV2LCB2b2lkICpndnQsIGNvbnN0IHZvaWQgKm9wcyk7Cj4gIAl2b2lkICgqaG9zdF9l eGl0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ICAJaW50ICgqYXR0YWNoX3ZncHUpKHZvaWQgKnZn cHUsIHVuc2lnbmVkIGxvbmcgKmhhbmRsZSk7IEBAIC02Nyw2Cj4gKzczLDUgQEAgc3RydWN0IGlu dGVsX2d2dF9tcHQgeyAgfTsKPiAKPiAgZXh0ZXJuIHN0cnVjdCBpbnRlbF9ndnRfbXB0IHhlbmd0 X21wdDsKPiAtZXh0ZXJuIHN0cnVjdCBpbnRlbF9ndnRfbXB0IGt2bWd0X21wdDsKPiAKPiAgI2Vu ZGlmIC8qIF9HVlRfSFlQRVJDQUxMX0hfICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9rdm1ndC5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQva3ZtZ3QuYwo+ IGluZGV4IDFiYmQwNGQzMGM0Mi4uZWYyNDhkNTc3ZTQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L2t2bWd0LmMKPiBAQCAtNTAsNiArNTAsNyBAQAo+ICAjaW5jbHVkZSAiZ3Z0LmgiCj4gCj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZ3Z0X29wcyAqaW50ZWxfZ3Z0X29wczsKPiArc3RhdGlj IHN0cnVjdCBpbnRlbF9ndnQgKmludGVsX2d2dDsKPiAKPiAgLyogaGVscGVyIG1hY3JvcyBjb3Bp ZWQgZnJvbSB2ZmlvLXBjaSAqLwo+ICAjZGVmaW5lIFZGSU9fUENJX09GRlNFVF9TSElGVCAgIDQw Cj4gQEAgLTYyNyw2ICs2MjgsMTIgQEAgc3RhdGljIGludCBpbnRlbF92Z3B1X29wZW4oc3RydWN0 IG1kZXZfZGV2aWNlCj4gKm1kZXYpCj4gIAkJZ290byB1bmRvX2lvbW11Owo+ICAJfQo+IAo+ICsJ LyogVGFrZSBhIG1vZHVsZSByZWZlcmVuY2UgYXMgbWRldiBjb3JlIGRvZXNuJ3QgdGFrZQo+ICsJ ICogYSByZWZlcmVuY2UgZm9yIHZlbmRvciBkcml2ZXIuCj4gKwkgKi8KPiArCWlmICghdHJ5X21v ZHVsZV9nZXQoVEhJU19NT0RVTEUpKQo+ICsJCWdvdG8gdW5kb19ncm91cDsKPiArCj4gIAlyZXQg PSBrdm1ndF9ndWVzdF9pbml0KG1kZXYpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIHVuZG9fZ3Jv dXA7Cj4gQEAgLTY3OSw2ICs2ODYsOSBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX3ZncHVfcmVsZWFz ZShzdHJ1Y3QgaW50ZWxfdmdwdQo+ICp2Z3B1KQo+ICAJCQkJCSZ2Z3B1LT52ZGV2Lmdyb3VwX25v dGlmaWVyKTsKPiAgCVdBUk4ocmV0LCAidmZpb191bnJlZ2lzdGVyX25vdGlmaWVyIGZvciBncm91 cCBmYWlsZWQ6ICVkXG4iLCByZXQpOwo+IAo+ICsJLyogZGVyZWZlcmVuY2UgbW9kdWxlIHJlZmVy ZW5jZSB0YWtlbiBhdCBvcGVuICovCj4gKwltb2R1bGVfcHV0KFRISVNfTU9EVUxFKTsKPiArCj4g IAlpbmZvID0gKHN0cnVjdCBrdm1ndF9ndWVzdF9pbmZvICopdmdwdS0+aGFuZGxlOwo+ICAJa3Zt Z3RfZ3Vlc3RfZXhpdChpbmZvKTsKPiAKPiBAQCAtMTQ1OSw4ICsxNDY5LDEwIEBAIHN0YXRpYyBp bnQga3ZtZ3RfaG9zdF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZAo+ICpndnQsIGNvbnN0 IHZvaWQgKm9wcykKPiAgCXN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKiprdm1fdmdwdV90eXBlX2dy b3VwczsKPiAKPiAgCWludGVsX2d2dF9vcHMgPSBvcHM7Cj4gKwlpbnRlbF9ndnQgPSAoc3RydWN0 IGludGVsX2d2dCAqKWd2dDsKPiArCj4gIAlpZiAoIWludGVsX2d2dF9vcHMtPmdldF9ndnRfYXR0 cnMoJmt2bV90eXBlX2F0dHJzLAo+IC0JCQkma3ZtX3ZncHVfdHlwZV9ncm91cHMpKQo+ICsJCQkJ CSAgJmt2bV92Z3B1X3R5cGVfZ3JvdXBzKSkKPiAgCQlyZXR1cm4gLUVGQVVMVDsKPiAgCWludGVs X3ZncHVfb3BzLnN1cHBvcnRlZF90eXBlX2dyb3VwcyA9IGt2bV92Z3B1X3R5cGVfZ3JvdXBzOwo+ IAo+IEBAIC0xODQ5LDcgKzE4NjEsOCBAQCBzdGF0aWMgYm9vbCBrdm1ndF9pc192YWxpZF9nZm4o dW5zaWduZWQgbG9uZwo+IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBnZm4pCj4gIAlyZXR1cm4gcmV0 Owo+ICB9Cj4gCj4gLXN0cnVjdCBpbnRlbF9ndnRfbXB0IGt2bWd0X21wdCA9IHsKPiArc3RhdGlj IHN0cnVjdCBpbnRlbF9ndnRfbXB0IGt2bWd0X21wdCA9IHsKPiArCS50eXBlID0gSU5URUxfR1ZU X0hZUEVSVklTT1JfS1ZNLAo+ICAJLmhvc3RfaW5pdCA9IGt2bWd0X2hvc3RfaW5pdCwKPiAgCS5o b3N0X2V4aXQgPSBrdm1ndF9ob3N0X2V4aXQsCj4gIAkuYXR0YWNoX3ZncHUgPSBrdm1ndF9hdHRh Y2hfdmdwdSwKPiBAQCAtMTg2OCwxNSArMTg4MSwxNyBAQCBzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCBr dm1ndF9tcHQgPSB7Cj4gIAkucHV0X3ZmaW9fZGV2aWNlID0ga3ZtZ3RfcHV0X3ZmaW9fZGV2aWNl LAo+ICAJLmlzX3ZhbGlkX2dmbiA9IGt2bWd0X2lzX3ZhbGlkX2dmbiwKPiAgfTsKPiAtRVhQT1JU X1NZTUJPTF9HUEwoa3ZtZ3RfbXB0KTsKPiAKPiAgc3RhdGljIGludCBfX2luaXQga3ZtZ3RfaW5p dCh2b2lkKQo+ICB7Cj4gKwlpZiAoaW50ZWxfZ3Z0X3JlZ2lzdGVyX2h5cGVydmlzb3IoJmt2bWd0 X21wdCkgPCAwKQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAKPiAg c3RhdGljIHZvaWQgX19leGl0IGt2bWd0X2V4aXQodm9pZCkKPiAgewo+ICsJaW50ZWxfZ3Z0X3Vu cmVnaXN0ZXJfaHlwZXJ2aXNvcigpOwo+ICB9Cj4gCj4gIG1vZHVsZV9pbml0KGt2bWd0X2luaXQp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvbXB0LmgKPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaCBpbmRleCBjOTVlZjc3ZGE2MmMuLjliNDIyNWQ0NDI0 Mwo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaAo+IEBAIC0zNjAsNCArMzYwLDcgQEAgc3Rh dGljIGlubGluZSBib29sIGludGVsX2d2dF9oeXBlcnZpc29yX2lzX3ZhbGlkX2dmbigKPiAgCXJl dHVybiBpbnRlbF9ndnRfaG9zdC5tcHQtPmlzX3ZhbGlkX2dmbih2Z3B1LT5oYW5kbGUsIGdmbik7 ICB9Cj4gCj4gK2ludCBpbnRlbF9ndnRfcmVnaXN0ZXJfaHlwZXJ2aXNvcihzdHJ1Y3QgaW50ZWxf Z3Z0X21wdCAqKTsgdm9pZAo+ICtpbnRlbF9ndnRfdW5yZWdpc3Rlcl9oeXBlcnZpc29yKHZvaWQp Owo+ICsKPiAgI2VuZGlmIC8qIF9HVlRfTVBUX0hfICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dnQuYwo+IGluZGV4IGMyMmIzZTE4YTBmNS4uZDc0ZTU5ZTIyYzlkIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3Z0LmMKPiBAQCAtMTA1LDE1ICsxMDUsNiBAQCBpbnQgaW50ZWxfZ3Z0X2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCXJldHVybiAtRUlPOwo+ICAJ fQo+IAo+IC0JLyoKPiAtCSAqIFdlJ3JlIG5vdCBpbiBob3N0IG9yIGZhaWwgdG8gZmluZCBhIE1Q VCBtb2R1bGUsIGRpc2FibGUgR1ZULWcKPiAtCSAqLwo+IC0JcmV0ID0gaW50ZWxfZ3Z0X2luaXRf aG9zdCgpOwo+IC0JaWYgKHJldCkgewo+IC0JCURSTV9ERUJVR19EUklWRVIoIk5vdCBpbiBob3N0 IG9yIE1QVCBtb2R1bGVzIG5vdAo+IGZvdW5kXG4iKTsKPiAtCQlnb3RvIGJhaWw7Cj4gLQl9Cj4g LQo+ICAJcmV0ID0gaW50ZWxfZ3Z0X2luaXRfZGV2aWNlKGRldl9wcml2KTsKPiAgCWlmIChyZXQp IHsKPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsIHRvIGluaXQgR1ZUIGRldmljZVxuIik7Cj4g LS0KPiAyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=