From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH] drm/amdgpu: SR-IOV data exchange between PF&VF Date: Mon, 9 Oct 2017 13:06:09 +0200 Message-ID: References: <1507544971-10529-1-git-send-email-horace.chen@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1507544971-10529-1-git-send-email-horace.chen-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Horace Chen , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org QW0gMDkuMTAuMjAxNyB1bSAxMjoyOSBzY2hyaWViIEhvcmFjZSBDaGVuOgo+IFNSLUlPViBuZWVk IHRvIGV4Y2hhbmdlIHNvbWUgZGF0YSBiZXR3ZWVuIFBGJlZGIHRocm91Z2ggc2hhcmVkIFZSQU0K Pgo+IFBGIHdpbGwgY29weSBzb21lIG5lY2Vzc2FyeSBmaXJtd2FyZSBhbmQgaW5mb3JtYXRpb24g dG8gdGhlIHNoYXJlZAo+IFZSQU0uIEl0IGFsc28gcmVxdWlyZXMgc29tZSBpbmZvcm1hdGlvbiBm cm9tIFZGLiBQRiB3aWxsIHNlbmQgYQo+IGtleSB0aHJvdWdoIG1haWxib3gyIHRvIGhlbHAgZ3Vl c3QgY2FsY3VsYXRlIGNoZWNrc3VtIHNvIHRoYXQgaXQgY2FuCj4gdmVyaWZ5IHdoZXRoZXIgdGhl IGRhdGEgaXMgY29ycmVjdC4KPgo+IFNvIGNoZWNrIHRoZSBkYXRhIG9uIHRoZSBzcGVjaWZpZWQg b2Zmc2V0IG9mIHRoZSBzaGFyZWQgVlJBTSwgaWYgdGhlCj4gY2hlY2tzdW0gaXMgcmlnaHQsIHJl YWQgdmFsdWVzIGZyb20gaXQgYW5kIHdyaXRlIHNvbWUgVkYgaW5mb3JtYXRpb24KPiBuZXh0IHRv IHRoZSBkYXRhIGZyb20gUEYuCj4KPiBTaWduZWQtb2ZmLWJ5OiBIb3JhY2UgQ2hlbiA8aG9yYWNl LmNoZW5AYW1kLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kZXZpY2UuYyB8ICAgMyArCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dmlydC5jICAgfCAgNzUgKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdmlydC5oICAgfCAxODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMgICAgICB8ICAgNiArCj4gICA0 IGZpbGVzIGNoYW5nZWQsIDI2OSBpbnNlcnRpb25zKCspCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4gaW5kZXggYTk2NDI0MS4uMjI3NTQyNyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiBAQCAtMjM0Myw2 ICsyMzQzLDkgQEAgaW50IGFtZGdwdV9kZXZpY2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwKPiAgIAlpZiAocikKPiAgIAkJRFJNX0VSUk9SKCJpYiByaW5nIHRlc3QgZmFpbGVkICgl ZCkuXG4iLCByKTsKPiAgIAo+ICsJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKPiArCQlhbWRn cHVfdmlydF9pbml0X2RhdGFfZXhjaGFuZ2UoYWRldik7Cj4gKwo+ICAgCWFtZGdwdV9mYmRldl9p bml0KGFkZXYpOwo+ICAgCj4gICAJciA9IGFtZGdwdV9wbV9zeXNmc19pbml0KGFkZXYpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYwo+IGluZGV4IGFiMDUxMjEuLmQ4 NzdmZTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zp cnQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMKPiBA QCAtMjc0LDMgKzI3NCw3OCBAQCB2b2lkIGFtZGdwdV92aXJ0X2ZyZWVfbW1fdGFibGUoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAJCQkgICAgICAodm9pZCAqKSZhZGV2LT52aXJ0Lm1t X3RhYmxlLmNwdV9hZGRyKTsKPiAgIAlhZGV2LT52aXJ0Lm1tX3RhYmxlLmdwdV9hZGRyID0gMDsK PiAgIH0KPiArCj4gKwo+ICtpbnQgYW1kZ3B1X3ZpcnRfZndfcmVzZXJ2ZV9nZXRfY2hlY2tzdW0o dm9pZCAqb2JqLAo+ICsJCQkJCXVuc2lnbmVkIGxvbmcgb2JqX3NpemUsCj4gKwkJCQkJdW5zaWdu ZWQgaW50IGtleSwKPiArCQkJCQl1bnNpZ25lZCBpbnQgY2hrc3VtKQo+ICt7Cj4gKwl1bnNpZ25l ZCBpbnQgcmV0ID0ga2V5Owo+ICsJdW5zaWduZWQgbG9uZyBpID0gMDsKPiArCXVuc2lnbmVkIGNo YXIgKnBvczsKPiArCj4gKwlwb3MgPSAoY2hhciAqKW9iajsKPiArCS8vY2FsY3VsYXRlIGNoZWNr c3VtCj4gKwlmb3IgKGkgPSAwOyBpIDwgb2JqX3NpemU7ICsraSkKPiArCQlyZXQgKz0gKihwb3Mg KyBpKTsKPiArCS8vbWludXMgdGhlIGNoa3N1bSBpdHNlbGYKPiArCXBvcyA9IChjaGFyICopJmNo a3N1bTsKPiArCWZvciAoaSA9IDA7IGkgPCBzaXplb2YoY2hrc3VtKTsgKytpKQo+ICsJCXJldCAt PSAqKHBvcyArIGkpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArdm9pZCBhbWRncHVfdmly dF9pbml0X2RhdGFfZXhjaGFuZ2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gK3sKPiAr CXVpbnQzMl90IHBmMnZmX3ZlciA9IDA7Cj4gKwl1aW50MzJfdCBwZjJ2Zl9zaXplID0gMDsKPiAr CXVpbnQzMl90IGNoZWNrc3VtID0gMDsKPiArCWNoYXIgKnN0cjsKPiArCj4gKwlhZGV2LT52aXJ0 LmZ3X3Jlc2VydmUucF9wZjJ2ZiA9IE5VTEw7Cj4gKwlhZGV2LT52aXJ0LmZ3X3Jlc2VydmUucF92 ZjJwZiA9IE5VTEw7Cj4gKwo+ICsJaWYgKGFkZXYtPmZ3X3ZyYW1fdXNhZ2UudmEgIT0gTlVMTCkg ewo+ICsJCWFkZXYtPnZpcnQuZndfcmVzZXJ2ZS5wX3BmMnZmID0KPiArCQkJKHN0cnVjdCBhbWRn aW1fcGYydmZfaW5mb19oZWFkZXIgKikoCj4gKwkJCWFkZXYtPmZ3X3ZyYW1fdXNhZ2UudmEgKwo+ ICsJCQlLQl9UT19CWVRFKEFNREdJTV9EQVRBRVhDSEFOR0VfT0ZGU0VUX0tCKSksCj4gKwkJcGYy dmZfdmVyID0gYWRldi0+dmlydC5md19yZXNlcnZlLnBfcGYydmYtPnZlcnNpb247Cj4gKwkJQU1E R1BVX0ZXX1ZSQU1fUEYyVkZfUkVBRChhZGV2LCBoZWFkZXIuc2l6ZSwgJnBmMnZmX3NpemUpOwo+ ICsJCUFNREdQVV9GV19WUkFNX1BGMlZGX1JFQUQoYWRldiwgY2hlY2tzdW0sICZjaGVja3N1bSk7 Cj4gKwo+ICsJCS8qcGYydmYgbWVzc2FnZSBtdXN0IGJlIGluIDRLKi8KPiArCQlpZiAocGYydmZf c2l6ZSA+IDAgJiYgcGYydmZfc2l6ZSA8IEtCX1RPX0JZVEUoNCkpIHsKPiArCQkJaWYgKGFtZGdw dV92aXJ0X2Z3X3Jlc2VydmVfZ2V0X2NoZWNrc3VtKAo+ICsJCQkJYWRldi0+dmlydC5md19yZXNl cnZlLnBfcGYydmYsIHBmMnZmX3NpemUsCj4gKwkJCQlhZGV2LT52aXJ0LmZ3X3Jlc2VydmUuY2hl Y2tzdW1fa2V5LAo+ICsJCQkJY2hlY2tzdW0pID09IGNoZWNrc3VtKXsKPiArCQkJCWFkZXYtPnZp cnQuZndfcmVzZXJ2ZS5wX3ZmMnBmID0KPiArCQkJCQkoKHZvaWQgKilhZGV2LT52aXJ0LmZ3X3Jl c2VydmUucF9wZjJ2ZiArCj4gKwkJCQkJcGYydmZfc2l6ZSk7Cj4gKwkJCQltZW1zZXQoKHZvaWQg KilhZGV2LT52aXJ0LmZ3X3Jlc2VydmUucF92ZjJwZiwgMCwKPiArCQkJCQlzaXplb2YoYW1kZ2lt X3ZmMnBmX2luZm8pKTsKPiArCQkJCUFNREdQVV9GV19WUkFNX1ZGMlBGX1dSSVRFKGFkZXYsIGhl YWRlci52ZXJzaW9uLAo+ICsJCQkJCUFNREdQVV9GV19WUkFNX1ZGMlBGX1ZFUik7Cj4gKwkJCQlB TURHUFVfRldfVlJBTV9WRjJQRl9XUklURShhZGV2LCBoZWFkZXIuc2l6ZSwKPiArCQkJCQlzaXpl b2YoYW1kZ2ltX3ZmMnBmX2luZm8pKTsKPiArCQkJCUFNREdQVV9GV19WUkFNX1ZGMlBGX1JFQUQo YWRldiwgZHJpdmVyX3ZlcnNpb24sCj4gKwkJCQkJJnN0cik7Cj4gKwkJCQlpZiAoVEhJU19NT0RV TEUtPnZlcnNpb24gIT0gTlVMTCkKPiArCQkJCQlzdHJjcHkoc3RyLCBUSElTX01PRFVMRS0+dmVy c2lvbik7Cj4gKwkJCQllbHNlCj4gKwkJCQkJc3RyY3B5KHN0ciwgIk4vQSIpOwo+ICsJCQkJQU1E R1BVX0ZXX1ZSQU1fVkYyUEZfV1JJVEUoYWRldiwgZHJpdmVyX2NlcnQsCj4gKwkJCQkJMCk7Cj4g KwkJCQlBTURHUFVfRldfVlJBTV9WRjJQRl9XUklURShhZGV2LCBjaGVja3N1bSwKPiArCQkJCQlh bWRncHVfdmlydF9md19yZXNlcnZlX2dldF9jaGVja3N1bSgKPiArCQkJCQlhZGV2LT52aXJ0LmZ3 X3Jlc2VydmUucF92ZjJwZiwKPiArCQkJCQlwZjJ2Zl9zaXplLAo+ICsJCQkJCWFkZXYtPnZpcnQu ZndfcmVzZXJ2ZS5jaGVja3N1bV9rZXksIDApKTsKPiArCQkJfQo+ICsJCX0KPiArCX0KPiArfQo+ ICsKPiArCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 aXJ0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCj4gaW5kZXgg ZTVmZDBmZi4uMTNlMWZkYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdmlydC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZpcnQuaAo+IEBAIC01OCw2ICs1OCwxODYgQEAgc3RydWN0IGFtZGdwdV92aXJ0X29wcyB7Cj4g ICAJdm9pZCAoKnRyYW5zX21zZykoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiByZXEs IHUzMiBkYXRhMSwgdTMyIGRhdGEyLCB1MzIgZGF0YTMpOwo+ICAgfTsKPiAgIAo+ICsvKgo+ICsg KiBGaXJtd2FyZSBSZXNlcnZlIEZyYW1lIGJ1ZmZlcgo+ICsgKi8KPiArc3RydWN0IGFtZGdwdV92 aXJ0X2Z3X3Jlc2VydmUgewo+ICsJc3RydWN0IGFtZGdpbV9wZjJ2Zl9pbmZvX2hlYWRlciAqcF9w ZjJ2ZjsKPiArCXN0cnVjdCBhbWRnaW1fdmYycGZfaW5mb19oZWFkZXIgKnBfdmYycGY7Cj4gKwl1 bnNpZ25lZCBpbnQgY2hlY2tzdW1fa2V5Owo+ICt9Owo+ICsvKgo+ICsgKiBEZWZpbmF0aW9uIGJl dHdlZW4gUEYgYW5kIFZGCj4gKyAqLwo+ICsjcHJhZ21hIHBhY2socHVzaCkKPiArI3ByYWdtYSBw YWNrKDQpCgpJSVJDIHdlIGRvbid0IHVzZSBwcmFnbWFzIGluIGtlcm5lbCBjb2RlLiBJbnN0ZWFk IHVzZSB0aGUgX19hdHRyaWJ1dGVfXyAKb24gdGhlIGFmZmVjdGVkIHN0cnVjdHVyZXMuCgpBcGFy dCBmcm9tIHRoYXQgYXQgbGVhc3QgdGhlIHN0eWxlIGxvb2tzIGdvb2QgdG8gbWUsIGJ1dCBJIGNh bid0IGp1ZGdlIAp0ZWNobmljYWwgY29ycmVjdG5lc3MuCgpDaHJpc3RpYW4uCgo+ICsKPiArI2Rl ZmluZSBBTURHSU1fREFUQUVYQ0hBTkdFX09GRlNFVF9LQiAgICAgICAgICAgKDY0KQo+ICsjZGVm aW5lIEtCX1RPX0JZVEUoeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHgpIDw8IDEwKQo+ ICsjZGVmaW5lIEJZVEVfVE9fS0IoeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHgpID4+ IDEwKQo+ICsKPiArI2RlZmluZSBBTURHSU1fR0VUX1NUUlVDVFVSRV9SRVNFUlZFRF9TSVpFKHRv dGFsLCB1OCwgdTE2LCB1MzIsIHU2NCkgXAo+ICsJCSh0b3RhbCAtICgoKHU4KSszKSAvIDQgKyAo KHUxNikrMSkgLyAyICsgKHUzMikgKyAodTY0KSoyKSkKPiArCj4gK2VudW0gQU1ER0lNX0ZFQVRV UkVfRkxBRyB7Cj4gKwkvKiBHSU0gc3VwcG9ydHMgZmVhdHVyZSBvZiBFcnJvciBsb2cgY29sbGVj dGluZyAqLwo+ICsJQU1ER0lNX0ZFQVRVUkVfRVJST1JfTE9HX0NPTExFQ1QgPSAweDEsCj4gKwkv KiBHSU0gc3VwcG9ydHMgZmVhdHVyZSBvZiBsb2FkaW5nIHVDb2RlcyAqLwo+ICsJQU1ER0lNX0ZF QVRVUkVfR0lNX0xPQURfVUNPREVTICAgPSAweDIsCj4gK307Cj4gKwo+ICtzdHJ1Y3QgYW1kZ2lt X3BmMnZmX2luZm9faGVhZGVyIHsKPiArCS8qIHRoZSB0b3RhbCBzdHJ1Y3R1cmUgc2l6ZSBpbiBi eXRlLiAqLwo+ICsJdWludDMyX3Qgc2l6ZTsKPiArCS8qIHZlcnNpb24gb2YgdGhpcyBzdHJ1Y3R1 cmUsIHdyaXR0ZW4gYnkgdGhlIEdJTSAqLwo+ICsJdWludDMyX3QgdmVyc2lvbjsKPiArfTsKPiAr c3RydWN0ICBhbWRnaW1fcGYydmZfaW5mb192MSB7Cj4gKwkvKiBoZWFkZXIgY29udGFpbnMgc2l6 ZSBhbmQgdmVyc2lvbiAqLwo+ICsJc3RydWN0IGFtZGdpbV9wZjJ2Zl9pbmZvX2hlYWRlciBoZWFk ZXI7Cj4gKwkvKiBtYXhfd2lkdGggKiBtYXhfaGVpZ2h0ICovCj4gKwl1bnNpZ25lZCBpbnQgdXZk X2VuY19tYXhfcGl4ZWxzX2NvdW50Owo+ICsJLyogMTZ4MTYgcGl4ZWxzL3NlYywgY29kZWMgaW5k ZXBlbmRlbnQgKi8KPiArCXVuc2lnbmVkIGludCB1dmRfZW5jX21heF9iYW5kd2lkdGg7Cj4gKwkv KiBtYXhfd2lkdGggKiBtYXhfaGVpZ2h0ICovCj4gKwl1bnNpZ25lZCBpbnQgdmNlX2VuY19tYXhf cGl4ZWxzX2NvdW50Owo+ICsJLyogMTZ4MTYgcGl4ZWxzL3NlYywgY29kZWMgaW5kZXBlbmRlbnQg Ki8KPiArCXVuc2lnbmVkIGludCB2Y2VfZW5jX21heF9iYW5kd2lkdGg7Cj4gKwkvKiBNRUMgRlcg cG9zaXRpb24gaW4ga2IgZnJvbSB0aGUgc3RhcnQgb2YgdmlzaWJsZSBmcmFtZSBidWZmZXIgKi8K PiArCXVuc2lnbmVkIGludCBtZWNmd19rYm9mZnNldDsKPiArCS8qIFRoZSBmZWF0dXJlcyBmbGFn cyBvZiB0aGUgR0lNIGRyaXZlciBzdXBwb3J0cy4gKi8KPiArCXVuc2lnbmVkIGludCBmZWF0dXJl X2ZsYWdzOwo+ICsJLyogdXNlIHByaXZhdGUga2V5IGZyb20gbWFpbGJveCAyIHRvIGNyZWF0ZSBj aHVla3N1bSAqLwo+ICsJdW5zaWduZWQgaW50IGNoZWNrc3VtOwo+ICt9Owo+ICsKPiArc3RydWN0 ICBhbWRnaW1fcGYydmZfaW5mb192MiB7Cj4gKwkvKiBoZWFkZXIgY29udGFpbnMgc2l6ZSBhbmQg dmVyc2lvbiAqLwo+ICsJc3RydWN0IGFtZGdpbV9wZjJ2Zl9pbmZvX2hlYWRlciBoZWFkZXI7Cj4g KwkvKiB1c2UgcHJpdmF0ZSBrZXkgZnJvbSBtYWlsYm94IDIgdG8gY3JlYXRlIGNodWVrc3VtICov Cj4gKwl1bnNpZ25lZCBpbnQgY2hlY2tzdW07Cj4gKwkvKiBUaGUgZmVhdHVyZXMgZmxhZ3Mgb2Yg dGhlIEdJTSBkcml2ZXIgc3VwcG9ydHMuICovCj4gKwl1bnNpZ25lZCBpbnQgZmVhdHVyZV9mbGFn czsKPiArCS8qIG1heF93aWR0aCAqIG1heF9oZWlnaHQgKi8KPiArCXVuc2lnbmVkIGludCB1dmRf ZW5jX21heF9waXhlbHNfY291bnQ7Cj4gKwkvKiAxNngxNiBwaXhlbHMvc2VjLCBjb2RlYyBpbmRl cGVuZGVudCAqLwo+ICsJdW5zaWduZWQgaW50IHV2ZF9lbmNfbWF4X2JhbmR3aWR0aDsKPiArCS8q IG1heF93aWR0aCAqIG1heF9oZWlnaHQgKi8KPiArCXVuc2lnbmVkIGludCB2Y2VfZW5jX21heF9w aXhlbHNfY291bnQ7Cj4gKwkvKiAxNngxNiBwaXhlbHMvc2VjLCBjb2RlYyBpbmRlcGVuZGVudCAq Lwo+ICsJdW5zaWduZWQgaW50IHZjZV9lbmNfbWF4X2JhbmR3aWR0aDsKPiArCS8qIE1FQyBGVyBw b3NpdGlvbiBpbiBrYiBmcm9tIHRoZSBzdGFydCBvZiBWRiB2aXNpYmxlIGZyYW1lIGJ1ZmZlciAq Lwo+ICsJdW5zaWduZWQgaW50IG1lY2Z3X2tib2Zmc2V0Owo+ICsJLyogTUVDIEZXIHNpemUgaW4g S0IgKi8KPiArCXVuc2lnbmVkIGludCBtZWNmd19rc2l6ZTsKPiArCS8qIFVWRCBGVyBwb3NpdGlv biBpbiBrYiBmcm9tIHRoZSBzdGFydCBvZiBWRiB2aXNpYmxlIGZyYW1lIGJ1ZmZlciAqLwo+ICsJ dW5zaWduZWQgaW50IHV2ZGZ3X2tib2Zmc2V0Owo+ICsJLyogVVZEIEZXIHNpemUgaW4gS0IgKi8K PiArCXVuc2lnbmVkIGludCB1dmRmd19rc2l6ZTsKPiArCS8qIFZDRSBGVyBwb3NpdGlvbiBpbiBr YiBmcm9tIHRoZSBzdGFydCBvZiBWRiB2aXNpYmxlIGZyYW1lIGJ1ZmZlciAqLwo+ICsJdW5zaWdu ZWQgaW50IHZjZWZ3X2tib2Zmc2V0Owo+ICsJLyogVkNFIEZXIHNpemUgaW4gS0IgKi8KPiArCXVu c2lnbmVkIGludCB2Y2Vmd19rc2l6ZTsKPiArCXVuc2lnbmVkIGludCByZXNlcnZlZFtBTURHSU1f R0VUX1NUUlVDVFVSRV9SRVNFUlZFRF9TSVpFKDI1NiwgMCwgMCwgKDkgKyBzaXplb2Yoc3RydWN0 IGFtZGdpbV9wZjJ2Zl9pbmZvX2hlYWRlcikvc2l6ZW9mKHVpbnQzMl90KSksIDMpXTsKPiArfTsK PiArCj4gKwo+ICtzdHJ1Y3QgYW1kZ2ltX3ZmMnBmX2luZm9faGVhZGVyIHsKPiArCS8qIHRoZSB0 b3RhbCBzdHJ1Y3R1cmUgc2l6ZSBpbiBieXRlLiAqLwo+ICsJdWludDMyX3Qgc2l6ZTsKPiArCS8q dmVyc2lvbiBvZiB0aGlzIHN0cnVjdHVyZSwgd3JpdHRlbiBieSB0aGUgZ3Vlc3QgKi8KPiArCXVp bnQzMl90IHZlcnNpb247Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgYW1kZ2ltX3ZmMnBmX2luZm9fdjEg ewo+ICsJLyogaGVhZGVyIGNvbnRhaW5zIHNpemUgYW5kIHZlcnNpb24gKi8KPiArCXN0cnVjdCBh bWRnaW1fdmYycGZfaW5mb19oZWFkZXIgaGVhZGVyOwo+ICsJLyogZHJpdmVyIHZlcnNpb24gKi8K PiArCWNoYXIgZHJpdmVyX3ZlcnNpb25bNjRdOwo+ICsJLyogZHJpdmVyIGNlcnRpZmljYXRpb24s IDE9V0hRTCwgMD1Ob25lICovCj4gKwl1bnNpZ25lZCBpbnQgZHJpdmVyX2NlcnQ7Cj4gKwkvKiBn dWVzdCBPUyB0eXBlIGFuZCB2ZXJzaW9uOiBuZWVkIGEgZGVmaW5lICovCj4gKwl1bnNpZ25lZCBp bnQgb3NfaW5mbzsKPiArCS8qIGluIHRoZSB1bml0IG9mIDFNICovCj4gKwl1bnNpZ25lZCBpbnQg ZmJfdXNhZ2U7Cj4gKwkvKiBndWVzdCBnZnggZW5naW5lIHVzYWdlIHBlcmNlbnRhZ2UgKi8KPiAr CXVuc2lnbmVkIGludCBnZnhfdXNhZ2U7Cj4gKwkvKiBndWVzdCBnZnggZW5naW5lIGhlYWx0aCBw ZXJjZW50YWdlICovCj4gKwl1bnNpZ25lZCBpbnQgZ2Z4X2hlYWx0aDsKPiArCS8qIGd1ZXN0IGNv bXB1dGUgZW5naW5lIHVzYWdlIHBlcmNlbnRhZ2UgKi8KPiArCXVuc2lnbmVkIGludCBjb21wdXRl X3VzYWdlOwo+ICsJLyogZ3Vlc3QgY29tcHV0ZSBlbmdpbmUgaGVhbHRoIHBlcmNlbnRhZ2UgKi8K PiArCXVuc2lnbmVkIGludCBjb21wdXRlX2hlYWx0aDsKPiArCS8qIGd1ZXN0IHZjZSBlbmdpbmUg dXNhZ2UgcGVyY2VudGFnZS4gMHhmZmZmIG1lYW5zIE4vQS4gKi8KPiArCXVuc2lnbmVkIGludCB2 Y2VfZW5jX3VzYWdlOwo+ICsJLyogZ3Vlc3QgdmNlIGVuZ2luZSBoZWFsdGggcGVyY2VudGFnZS4g MHhmZmZmIG1lYW5zIE4vQS4gKi8KPiArCXVuc2lnbmVkIGludCB2Y2VfZW5jX2hlYWx0aDsKPiAr CS8qIGd1ZXN0IHV2ZCBlbmdpbmUgdXNhZ2UgcGVyY2VudGFnZS4gMHhmZmZmIG1lYW5zIE4vQS4g Ki8KPiArCXVuc2lnbmVkIGludCB1dmRfZW5jX3VzYWdlOwo+ICsJLyogZ3Vlc3QgdXZkIGVuZ2lu ZSB1c2FnZSBwZXJjZW50YWdlLiAweGZmZmYgbWVhbnMgTi9BLiAqLwo+ICsJdW5zaWduZWQgaW50 IHV2ZF9lbmNfaGVhbHRoOwo+ICsJdW5zaWduZWQgaW50IGNoZWNrc3VtOwo+ICt9Owo+ICsKPiAr c3RydWN0IGFtZGdpbV92ZjJwZl9pbmZvX3YyIHsKPiArCS8qIGhlYWRlciBjb250YWlucyBzaXpl IGFuZCB2ZXJzaW9uICovCj4gKwlzdHJ1Y3QgYW1kZ2ltX3ZmMnBmX2luZm9faGVhZGVyIGhlYWRl cjsKPiArCXVuc2lnbmVkIGludCBjaGVja3N1bTsKPiArCS8qIGRyaXZlciB2ZXJzaW9uICovCj4g KwljaGFyIGRyaXZlcl92ZXJzaW9uWzY0XTsKPiArCS8qIGRyaXZlciBjZXJ0aWZpY2F0aW9uLCAx PVdIUUwsIDA9Tm9uZSAqLwo+ICsJdW5zaWduZWQgaW50IGRyaXZlcl9jZXJ0Owo+ICsJLyogZ3Vl c3QgT1MgdHlwZSBhbmQgdmVyc2lvbjogbmVlZCBhIGRlZmluZSAqLwo+ICsJdW5zaWduZWQgaW50 IG9zX2luZm87Cj4gKwkvKiBpbiB0aGUgdW5pdCBvZiAxTSAqLwo+ICsJdW5zaWduZWQgaW50IGZi X3VzYWdlOwo+ICsJLyogZ3Vlc3QgZ2Z4IGVuZ2luZSB1c2FnZSBwZXJjZW50YWdlICovCj4gKwl1 bnNpZ25lZCBpbnQgZ2Z4X3VzYWdlOwo+ICsJLyogZ3Vlc3QgZ2Z4IGVuZ2luZSBoZWFsdGggcGVy Y2VudGFnZSAqLwo+ICsJdW5zaWduZWQgaW50IGdmeF9oZWFsdGg7Cj4gKwkvKiBndWVzdCBjb21w dXRlIGVuZ2luZSB1c2FnZSBwZXJjZW50YWdlICovCj4gKwl1bnNpZ25lZCBpbnQgY29tcHV0ZV91 c2FnZTsKPiArCS8qIGd1ZXN0IGNvbXB1dGUgZW5naW5lIGhlYWx0aCBwZXJjZW50YWdlICovCj4g Kwl1bnNpZ25lZCBpbnQgY29tcHV0ZV9oZWFsdGg7Cj4gKwkvKiBndWVzdCB2Y2UgZW5naW5lIHVz YWdlIHBlcmNlbnRhZ2UuIDB4ZmZmZiBtZWFucyBOL0EuICovCj4gKwl1bnNpZ25lZCBpbnQgdmNl X2VuY191c2FnZTsKPiArCS8qIGd1ZXN0IHZjZSBlbmdpbmUgaGVhbHRoIHBlcmNlbnRhZ2UuIDB4 ZmZmZiBtZWFucyBOL0EuICovCj4gKwl1bnNpZ25lZCBpbnQgdmNlX2VuY19oZWFsdGg7Cj4gKwkv KiBndWVzdCB1dmQgZW5naW5lIHVzYWdlIHBlcmNlbnRhZ2UuIDB4ZmZmZiBtZWFucyBOL0EuICov Cj4gKwl1bnNpZ25lZCBpbnQgdXZkX2VuY191c2FnZTsKPiArCS8qIGd1ZXN0IHV2ZCBlbmdpbmUg dXNhZ2UgcGVyY2VudGFnZS4gMHhmZmZmIG1lYW5zIE4vQS4gKi8KPiArCXVuc2lnbmVkIGludCB1 dmRfZW5jX2hlYWx0aDsKPiArCXVuc2lnbmVkIGludCByZXNlcnZlZFtBTURHSU1fR0VUX1NUUlVD VFVSRV9SRVNFUlZFRF9TSVpFKDI1NiwgNjQsIDAsICgxMiArIHNpemVvZihzdHJ1Y3QgYW1kZ2lt X3ZmMnBmX2luZm9faGVhZGVyKS9zaXplb2YodWludDMyX3QpKSwgMCldOwo+ICt9Owo+ICsKPiAr I2RlZmluZSBBTURHUFVfRldfVlJBTV9WRjJQRl9WRVIgMgo+ICt0eXBlZGVmIHN0cnVjdCBhbWRn aW1fdmYycGZfaW5mb192MiBhbWRnaW1fdmYycGZfaW5mbyA7Cj4gKwo+ICsjZGVmaW5lIEFNREdQ VV9GV19WUkFNX1ZGMlBGX1dSSVRFKGFkZXYsIGZpZWxkLCB2YWwpIFwKPiArCWRvIHsgXAo+ICsJ CSgoYW1kZ2ltX3ZmMnBmX2luZm8gKilhZGV2LT52aXJ0LmZ3X3Jlc2VydmUucF92ZjJwZiktPmZp ZWxkID0gKHZhbCk7IFwKPiArCX0gd2hpbGUgKDApCj4gKwo+ICsjZGVmaW5lIEFNREdQVV9GV19W UkFNX1ZGMlBGX1JFQUQoYWRldiwgZmllbGQsIHZhbCkgXAo+ICsJZG8geyBcCj4gKwkJKCp2YWwp ID0gKChhbWRnaW1fdmYycGZfaW5mbyAqKWFkZXYtPnZpcnQuZndfcmVzZXJ2ZS5wX3ZmMnBmKS0+ ZmllbGQ7IFwKPiArCX0gd2hpbGUgKDApCj4gKwo+ICsjZGVmaW5lIEFNREdQVV9GV19WUkFNX1BG MlZGX1JFQUQoYWRldiwgZmllbGQsIHZhbCkgXAo+ICsJZG8geyBcCj4gKwkJaWYgKCFhZGV2LT52 aXJ0LmZ3X3Jlc2VydmUucF9wZjJ2ZikgXAo+ICsJCQkqKHZhbCkgPSAwOyBcCj4gKwkJZWxzZSB7 IFwKPiArCQkJaWYgKGFkZXYtPnZpcnQuZndfcmVzZXJ2ZS5wX3BmMnZmLT52ZXJzaW9uID09IDEp IFwKPiArCQkJCSoodmFsKSA9ICgoc3RydWN0IGFtZGdpbV9wZjJ2Zl9pbmZvX3YxICopYWRldi0+ dmlydC5md19yZXNlcnZlLnBfcGYydmYpLT5maWVsZDsgXAo+ICsJCQlpZiAoYWRldi0+dmlydC5m d19yZXNlcnZlLnBfcGYydmYtPnZlcnNpb24gPT0gMikgXAo+ICsJCQkJKih2YWwpID0gKChzdHJ1 Y3QgYW1kZ2ltX3BmMnZmX2luZm9fdjIgKilhZGV2LT52aXJ0LmZ3X3Jlc2VydmUucF9wZjJ2Zikt PmZpZWxkOyBcCj4gKwkJfSBcCj4gKwl9IHdoaWxlICgwKQo+ICsKPiArI3ByYWdtYSBwYWNrKHBv cCkKPiArCj4gKwo+ICAgLyogR1BVIHZpcnR1YWxpemF0aW9uICovCj4gICBzdHJ1Y3QgYW1kZ3B1 X3ZpcnQgewo+ICAgCXVpbnQzMl90CQkJY2FwczsKPiBAQCAtNzIsNiArMjUyLDcgQEAgc3RydWN0 IGFtZGdwdV92aXJ0IHsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X21tX3RhYmxlCQltbV90YWJsZTsKPiAg IAljb25zdCBzdHJ1Y3QgYW1kZ3B1X3ZpcnRfb3BzCSpvcHM7Cj4gICAJc3RydWN0IGFtZGdwdV92 Zl9lcnJvcl9idWZmZXIgICB2Zl9lcnJvcnM7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X3ZpcnRfZndfcmVz ZXJ2ZQlmd19yZXNlcnZlOwo+ICAgfTsKPiAgIAo+ICAgI2RlZmluZSBBTURHUFVfQ1NBX1NJWkUg ICAgKDggKiAxMDI0KQo+IEBAIC0xMTQsNSArMjk1LDkgQEAgaW50IGFtZGdwdV92aXJ0X3Jlc2V0 X2dwdShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gICBpbnQgYW1kZ3B1X3NyaW92X2dw dV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9qb2IgKmpv Yik7Cj4gICBpbnQgYW1kZ3B1X3ZpcnRfYWxsb2NfbW1fdGFibGUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpOwo+ICAgdm9pZCBhbWRncHVfdmlydF9mcmVlX21tX3RhYmxlKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KTsKPiAraW50IGFtZGdwdV92aXJ0X2Z3X3Jlc2VydmVfZ2V0X2NoZWNr c3VtKHZvaWQgKm9iaiwgdW5zaWduZWQgbG9uZyBvYmpfc2l6ZSwKPiArCQkJCQl1bnNpZ25lZCBp bnQga2V5LAo+ICsJCQkJCXVuc2lnbmVkIGludCBjaGtzdW0pOwo+ICt2b2lkIGFtZGdwdV92aXJ0 X2luaXRfZGF0YV9leGNoYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gICAKPiAg ICNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9h aS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuYwo+IGluZGV4IDI4MTJk ODguLmI0OTA2ZDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhn cHVfYWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMKPiBA QCAtMTgzLDYgKzE4MywxMiBAQCBzdGF0aWMgaW50IHhncHVfYWlfc2VuZF9hY2Nlc3NfcmVxdWVz dHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAJCQlwcl9lcnIoIkRvZXNuJ3QgZ2V0 IFJFQURZX1RPX0FDQ0VTU19HUFUgZnJvbSBwZiwgZ2l2ZSB1cFxuIik7Cj4gICAJCQlyZXR1cm4g cjsKPiAgIAkJfQo+ICsJCS8qIFJldHJpZXZlIGNoZWNrc3VtIGZyb20gbWFpbGJveDIgKi8KPiAr CQlpZiAocmVxID09IElESF9SRVFfR1BVX0lOSVRfQUNDRVNTKSB7Cj4gKwkJCWFkZXYtPnZpcnQu ZndfcmVzZXJ2ZS5jaGVja3N1bV9rZXkgPQo+ICsJCQkJUlJFRzMyX05PX0tJUShTT0MxNV9SRUdf T0ZGU0VUKE5CSU8sIDAsCj4gKwkJCQkJbW1CSUZfQlhfUEYwX01BSUxCT1hfTVNHQlVGX1JDVl9E VzIpKTsKPiArCQl9Cj4gICAJfQo+ICAgCj4gICAJcmV0dXJuIDA7CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1k LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==