From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH 10/49] drm/amd/display: make firmware info only load once during dc_bios create Date: Fri, 9 Aug 2019 17:37:03 -0400 Message-ID: <20190809213742.30301-11-sunpeng.li@amd.com> References: <20190809213742.30301-1-sunpeng.li@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809213742.30301-1-sunpeng.li-5C7GfCeVMHo@public.gmane.org> 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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Leo Li , Dmytro Laktyushkin , Chris Park RnJvbTogRG15dHJvIExha3R5dXNoa2luIDxEbXl0cm8uTGFrdHl1c2hraW5AYW1kLmNvbT4KCkN1 cnJlbnRseSBldmVyeSB0aW1lIERDIHdhbnRzIHRvIGFjY2VzcyBmaXJtd2FyZSBpbmZvIHdlIG1h a2UgYSBjYWxsCmludG8gVkJJT1MuIFRoaXMgbWFrZXMgbm8gc2Vuc2UgYXMgdGhlcmUgaXMgbm90 aGluZyB0aGF0IGNhbiBjaGFuZ2UKcnVudGltZSBpbnNpZGUgZncgaW5mbyBhbmQgY2FuIGNhdXNl IGlzc3VlcyB3aGVuIGNhbGxpbmcgdW5zdGFibGUKYmlvcyBkdXJpbmcgYnJpbmd1cC4KClRoaXMg Y2hhbmdlIGVsaW1pbmF0ZSB0aGlzIGJlaGF2aW9yIGJ5IG9ubHkgY2FsbGluZyBiaW9zIG9uY2Ug Zm9yIGZ3CmluZm8gYW5kIGtlZXBpbmcgaXQgc3RvcmVkIGFzIHBhcnQgb2YgZGNfYmlvcy4KClNp Z25lZC1vZmYtYnk6IERteXRybyBMYWt0eXVzaGtpbiA8RG15dHJvLkxha3R5dXNoa2luQGFtZC5j b20+ClJldmlld2VkLWJ5OiBDaHJpcyBQYXJrIDxDaHJpcy5QYXJrQGFtZC5jb20+CkFja2VkLWJ5 OiBMZW8gTGkgPHN1bnBlbmcubGlAYW1kLmNvbT4KLS0tCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9iaW9zL2Jpb3NfcGFyc2VyLmMgfCAgMyArLQogLi4uL2RybS9hbWQvZGlzcGxheS9kYy9i aW9zL2Jpb3NfcGFyc2VyMi5jICAgIHwgIDMgKy0KIC4uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNl MTAwL2RjZV9jbGtfbWdyLmMgICB8IDE3ICsrKystLS0tLS0KIC4uLi9kaXNwbGF5L2RjL2Nsa19t Z3IvZGNuMTAvcnYxX2Nsa19tZ3IuYyAgICB8ICA2ICsrLS0KIC4uLi9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2NvcmUvZGNfcmVzb3VyY2UuYyB8ICA3ICsrLS0KIC4uLi9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjX2Jpb3NfdHlwZXMuaCAgICB8ICA1ICsrLQogLi4uL2RybS9hbWQvZGlzcGxheS9k Yy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5jIHwgMzIgKysrKysrKy0tLS0tLS0tLS0tLQogLi4uL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlL2RjZV9pMmNfaHcuYyAgIHwgMTMgKy0tLS0tLS0KIC4u Li9hbWQvZGlzcGxheS9kYy9kY2UxMDAvZGNlMTAwX3Jlc291cmNlLmMgICB8ICA0ICstLQogLi4u L2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfcmVzb3VyY2UuYyAgIHwgIDQgKy0tCiAuLi4v ZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTgwL2RjZTgwX3Jlc291cmNlLmMgfCAxMiArKy0tLS0tCiAu Li4vZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h3c2VxLmMgICAgfCAgOSArKystLS0K IDEyIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDc5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2Jpb3NfcGFyc2Vy LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9iaW9zX3BhcnNlci5jCmlu ZGV4IGE0Yzk3ZDMyZTc1MS4uMjA3ZjYwODQ1MjVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9iaW9zX3BhcnNlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9kYy9iaW9zL2Jpb3NfcGFyc2VyLmMKQEAgLTI3OTQsOCArMjc5NCw2IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNfdmJpb3NfZnVuY3MgdmJpb3NfZnVuY3MgPSB7CiAKIAku Z2V0X2RldmljZV90YWcgPSBiaW9zX3BhcnNlcl9nZXRfZGV2aWNlX3RhZywKIAotCS5nZXRfZmly bXdhcmVfaW5mbyA9IGJpb3NfcGFyc2VyX2dldF9maXJtd2FyZV9pbmZvLAotCiAJLmdldF9zcHJl YWRfc3BlY3RydW1faW5mbyA9IGJpb3NfcGFyc2VyX2dldF9zcHJlYWRfc3BlY3RydW1faW5mbywK IAogCS5nZXRfc3NfZW50cnlfbnVtYmVyID0gYmlvc19wYXJzZXJfZ2V0X3NzX2VudHJ5X251bWJl ciwKQEAgLTI5MjAsNiArMjkxOCw3IEBAIHN0YXRpYyBib29sIGJpb3NfcGFyc2VyX2NvbnN0cnVj dCgKIAlkYWxfYmlvc19wYXJzZXJfaW5pdF9jbWRfdGJsX2hlbHBlcigmYnAtPmNtZF9oZWxwZXIs IGRjZV92ZXJzaW9uKTsKIAogCWJwLT5iYXNlLmludGVncmF0ZWRfaW5mbyA9IGJpb3NfcGFyc2Vy X2NyZWF0ZV9pbnRlZ3JhdGVkX2luZm8oJmJwLT5iYXNlKTsKKwlicC0+YmFzZS5md19pbmZvX3Zh bGlkID0gYmlvc19wYXJzZXJfZ2V0X2Zpcm13YXJlX2luZm8oJmJwLT5iYXNlLCAmYnAtPmJhc2Uu ZndfaW5mbykgPT0gQlBfUkVTVUxUX09LOwogCiAJcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9iaW9zX3BhcnNlcjIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2Jpb3NfcGFyc2VyMi5jCmluZGV4IDk5 ZjQwYjhhMjMxYy4uYzlmNjVjNGRmNTMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvYmlvcy9iaW9zX3BhcnNlcjIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvYmlvcy9iaW9zX3BhcnNlcjIuYwpAQCAtMTg3OSw4ICsxODc5LDYgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkY192Ymlvc19mdW5jcyB2Ymlvc19mdW5jcyA9IHsKIAogCS5nZXRf ZGV2aWNlX3RhZyA9IGJpb3NfcGFyc2VyX2dldF9kZXZpY2VfdGFnLAogCi0JLmdldF9maXJtd2Fy ZV9pbmZvID0gYmlvc19wYXJzZXJfZ2V0X2Zpcm13YXJlX2luZm8sCi0KIAkuZ2V0X3NwcmVhZF9z cGVjdHJ1bV9pbmZvID0gYmlvc19wYXJzZXJfZ2V0X3NwcmVhZF9zcGVjdHJ1bV9pbmZvLAogCiAJ LmdldF9zc19lbnRyeV9udW1iZXIgPSBiaW9zX3BhcnNlcl9nZXRfc3NfZW50cnlfbnVtYmVyLApA QCAtMTk5Niw2ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wgYmlvc19wYXJzZXJfY29uc3RydWN0KAog CWRhbF9iaW9zX3BhcnNlcl9pbml0X2NtZF90YmxfaGVscGVyMigmYnAtPmNtZF9oZWxwZXIsIGRj ZV92ZXJzaW9uKTsKIAogCWJwLT5iYXNlLmludGVncmF0ZWRfaW5mbyA9IGJpb3NfcGFyc2VyX2Ny ZWF0ZV9pbnRlZ3JhdGVkX2luZm8oJmJwLT5iYXNlKTsKKwlicC0+YmFzZS5md19pbmZvX3ZhbGlk ID0gYmlvc19wYXJzZXJfZ2V0X2Zpcm13YXJlX2luZm8oJmJwLT5iYXNlLCAmYnAtPmJhc2UuZndf aW5mbykgPT0gQlBfUkVTVUxUX09LOwogCiAJcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY2UxMDAvZGNlX2Nsa19tZ3Iu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjZTEwMC9kY2VfY2xr X21nci5jCmluZGV4IDgxNDQ1MGZlZmZmYS4uYzVjOGM0OTAxZWVkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY2UxMDAvZGNlX2Nsa19tZ3IuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY2UxMDAvZGNlX2Ns a19tZ3IuYwpAQCAtMjczLDE4ICsyNzMsMTIgQEAgc3RhdGljIHZvaWQgZGNlX2Nsb2NrX3JlYWRf aW50ZWdyYXRlZF9pbmZvKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyX2RjZSkKIHsK IAlzdHJ1Y3QgZGNfZGVidWdfb3B0aW9ucyAqZGVidWcgPSAmY2xrX21ncl9kY2UtPmJhc2UuY3R4 LT5kYy0+ZGVidWc7CiAJc3RydWN0IGRjX2Jpb3MgKmJwID0gY2xrX21ncl9kY2UtPmJhc2UuY3R4 LT5kY19iaW9zOwotCXN0cnVjdCBpbnRlZ3JhdGVkX2luZm8gaW5mbyA9IHsgeyB7IDAgfSB9IH07 Ci0Jc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbyA9IHsgeyAwIH0gfTsKIAlpbnQgaTsK IAogCWlmIChicC0+aW50ZWdyYXRlZF9pbmZvKQotCQlpbmZvID0gKmJwLT5pbnRlZ3JhdGVkX2lu Zm87Ci0KLQljbGtfbWdyX2RjZS0+ZGVudGlzdF92Y29fZnJlcV9raHogPSBpbmZvLmRlbnRpc3Rf dmNvX2ZyZXE7CisJCWNsa19tZ3JfZGNlLT5kZW50aXN0X3Zjb19mcmVxX2toeiA9IGJwLT5pbnRl Z3JhdGVkX2luZm8tPmRlbnRpc3RfdmNvX2ZyZXE7CiAJaWYgKGNsa19tZ3JfZGNlLT5kZW50aXN0 X3Zjb19mcmVxX2toeiA9PSAwKSB7Ci0JCWJwLT5mdW5jcy0+Z2V0X2Zpcm13YXJlX2luZm8oYnAs ICZmd19pbmZvKTsKLQkJY2xrX21ncl9kY2UtPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0KLQkJCWZ3 X2luZm8uc211X2dwdV9wbGxfb3V0cHV0X2ZyZXE7CisJCWNsa19tZ3JfZGNlLT5kZW50aXN0X3Zj b19mcmVxX2toeiA9IGJwLT5md19pbmZvLnNtdV9ncHVfcGxsX291dHB1dF9mcmVxOwogCQlpZiAo Y2xrX21ncl9kY2UtPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID09IDApCiAJCQljbGtfbWdyX2RjZS0+ ZGVudGlzdF92Y29fZnJlcV9raHogPSAzNjAwMDAwOwogCX0KQEAgLTMxNyw5ICszMTEsMTAgQEAg c3RhdGljIHZvaWQgZGNlX2Nsb2NrX3JlYWRfaW50ZWdyYXRlZF9pbmZvKHN0cnVjdCBjbGtfbWdy X2ludGVybmFsICpjbGtfbWdyX2RjZSkKIAogCQkvKkRvIG5vdCBhbGxvdyBiYWQgVkJJT1MvU0JJ T1MgdG8gb3ZlcnJpZGUgd2l0aCBpbnZhbGlkIHZhbHVlcywKIAkJICogY2hlY2sgZm9yID4gMTAw TUh6Ki8KLQkJaWYgKGluZm8uZGlzcF9jbGtfdm9sdGFnZVtpXS5tYXhfc3VwcG9ydGVkX2NsayA+ PSAxMDAwMDApCi0JCQljbGtfbWdyX2RjZS0+bWF4X2Nsa3NfYnlfc3RhdGVbY2xrX3N0YXRlXS5k aXNwbGF5X2Nsa19raHogPQotCQkJCWluZm8uZGlzcF9jbGtfdm9sdGFnZVtpXS5tYXhfc3VwcG9y dGVkX2NsazsKKwkJaWYgKGJwLT5pbnRlZ3JhdGVkX2luZm8pCisJCQlpZiAoYnAtPmludGVncmF0 ZWRfaW5mby0+ZGlzcF9jbGtfdm9sdGFnZVtpXS5tYXhfc3VwcG9ydGVkX2NsayA+PSAxMDAwMDAp CisJCQkJY2xrX21ncl9kY2UtPm1heF9jbGtzX2J5X3N0YXRlW2Nsa19zdGF0ZV0uZGlzcGxheV9j bGtfa2h6ID0KKwkJCQkJYnAtPmludGVncmF0ZWRfaW5mby0+ZGlzcF9jbGtfdm9sdGFnZVtpXS5t YXhfc3VwcG9ydGVkX2NsazsKIAl9CiAKIAlpZiAoIWRlYnVnLT5kaXNhYmxlX2Rmc19ieXBhc3Mg JiYgYnAtPmludGVncmF0ZWRfaW5mbykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9jbGtfbWdyL2RjbjEwL3J2MV9jbGtfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvY2xrX21nci9kY24xMC9ydjFfY2xrX21nci5jCmluZGV4IDE4M2NhMzlj ZTVhMS4uYWU2MmU2YTg3MmQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvY2xrX21nci9kY24xMC9ydjFfY2xrX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9jbGtfbWdyL2RjbjEwL3J2MV9jbGtfbWdyLmMKQEAgLTI0Myw3ICsyNDMs NiBAQCB2b2lkIHJ2MV9jbGtfbWdyX2NvbnN0cnVjdChzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCBz dHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrXwogewogCXN0cnVjdCBkY19kZWJ1Z19vcHRpb25z ICpkZWJ1ZyA9ICZjdHgtPmRjLT5kZWJ1ZzsKIAlzdHJ1Y3QgZGNfYmlvcyAqYnAgPSBjdHgtPmRj X2Jpb3M7Ci0Jc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbyA9IHsgeyAwIH0gfTsKIAog CWNsa19tZ3ItPmJhc2UuY3R4ID0gY3R4OwogCWNsa19tZ3ItPnBwX3NtdSA9IHBwX3NtdTsKQEAg LTI1OSw5ICsyNTgsOCBAQCB2b2lkIHJ2MV9jbGtfbWdyX2NvbnN0cnVjdChzdHJ1Y3QgZGNfY29u dGV4dCAqY3R4LCBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrXwogCiAJaWYgKGJwLT5pbnRl Z3JhdGVkX2luZm8pCiAJCWNsa19tZ3ItPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0gYnAtPmludGVn cmF0ZWRfaW5mby0+ZGVudGlzdF92Y29fZnJlcTsKLQlpZiAoY2xrX21nci0+ZGVudGlzdF92Y29f ZnJlcV9raHogPT0gMCkgewotCQlicC0+ZnVuY3MtPmdldF9maXJtd2FyZV9pbmZvKGJwLCAmZndf aW5mbyk7Ci0JCWNsa19tZ3ItPmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0gZndfaW5mby5zbXVfZ3B1 X3BsbF9vdXRwdXRfZnJlcTsKKwlpZiAoYnAtPmZ3X2luZm9fdmFsaWQgJiYgY2xrX21nci0+ZGVu dGlzdF92Y29fZnJlcV9raHogPT0gMCkgeworCQljbGtfbWdyLT5kZW50aXN0X3Zjb19mcmVxX2to eiA9IGJwLT5md19pbmZvLnNtdV9ncHVfcGxsX291dHB1dF9mcmVxOwogCQlpZiAoY2xrX21nci0+ ZGVudGlzdF92Y29fZnJlcV9raHogPT0gMCkKIAkJCWNsa19tZ3ItPmRlbnRpc3RfdmNvX2ZyZXFf a2h6ID0gMzYwMDAwMDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvY29yZS9kY19yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2NvcmUvZGNfcmVzb3VyY2UuYwppbmRleCA0M2JiNGM5MzNkYTcuLjVmMmYyYzdlNzQ0NSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfcmVzb3VyY2Uu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19yZXNvdXJjZS5j CkBAIC0xNzAsMTIgKzE3MCw5IEBAIHN0cnVjdCByZXNvdXJjZV9wb29sICpkY19jcmVhdGVfcmVz b3VyY2VfcG9vbChzdHJ1Y3QgZGMgICpkYywKIAkJYnJlYWs7CiAJfQogCWlmIChyZXNfcG9vbCAh PSBOVUxMKSB7Ci0JCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvIGZ3X2luZm8gPSB7IHsgMCB9IH07 Ci0KLQkJaWYgKGRjLT5jdHgtPmRjX2Jpb3MtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhkYy0+ Y3R4LT5kY19iaW9zLAotCQkJCSZmd19pbmZvKSA9PSBCUF9SRVNVTFRfT0spIHsKKwkJaWYgKGRj LT5jdHgtPmRjX2Jpb3MtPmZ3X2luZm9fdmFsaWQpIHsKIAkJCXJlc19wb29sLT5yZWZfY2xvY2tz Lnh0YWxpbl9jbG9ja19pbktoeiA9Ci0JCQkJZndfaW5mby5wbGxfaW5mby5jcnlzdGFsX2ZyZXF1 ZW5jeTsKKwkJCQlkYy0+Y3R4LT5kY19iaW9zLT5md19pbmZvLnBsbF9pbmZvLmNyeXN0YWxfZnJl cXVlbmN5OwogCQkJLyogaW5pdGlhbGl6ZSB3aXRoIGZpcm13YXJlIGRhdGEgZmlyc3QsIG5vIGFs bAogCQkJICogQVNJQyBoYXZlIERDQ0cgU1cgY29tcG9uZW50LiBGUEdBIG9yCiAJCQkgKiBzaW11 bGF0aW9uIG5lZWQgaW5pdGlhbGl6YXRpb24gb2YKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9kYy9kY19iaW9zX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZGNfYmlvc190eXBlcy5oCmluZGV4IDc4YzNiMzAwZWM0NS4uYjFkZDBkNjBkOThl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNfYmlvc190eXBl cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY19iaW9zX3R5cGVzLmgK QEAgLTYxLDkgKzYxLDYgQEAgc3RydWN0IGRjX3ZiaW9zX2Z1bmNzIHsKIAkJc3RydWN0IGdyYXBo aWNzX29iamVjdF9pZCBjb25uZWN0b3Jfb2JqZWN0X2lkLAogCQl1aW50MzJfdCBkZXZpY2VfdGFn X2luZGV4LAogCQlzdHJ1Y3QgY29ubmVjdG9yX2RldmljZV90YWdfaW5mbyAqaW5mbyk7Ci0JZW51 bSBicF9yZXN1bHQgKCpnZXRfZmlybXdhcmVfaW5mbykoCi0JCXN0cnVjdCBkY19iaW9zICpiaW9z LAotCQlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyAqaW5mbyk7CiAJZW51bSBicF9yZXN1bHQgKCpn ZXRfc3ByZWFkX3NwZWN0cnVtX2luZm8pKAogCQlzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKIAkJZW51 bSBhc19zaWduYWxfdHlwZSBzaWduYWwsCkBAIC0xNTIsNiArMTQ5LDggQEAgc3RydWN0IGRjX2Jp b3MgewogCXN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiAJY29uc3Qgc3RydWN0IGJpb3NfcmVnaXN0 ZXJzICpyZWdzOwogCXN0cnVjdCBpbnRlZ3JhdGVkX2luZm8gKmludGVncmF0ZWRfaW5mbzsKKwlz dHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBmd19pbmZvOworCWJvb2wgZndfaW5mb192YWxpZDsKIH07 CiAKICNlbmRpZiAvKiBEQ19CSU9TX1RZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfY2xvY2tfc291cmNlLmMKaW5kZXggYzcyYWVkMzVm NGRiLi40NjRkN2MzODMwZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9kY2UvZGNlX2Nsb2NrX3NvdXJjZS5jCkBAIC0xMjMyLDM3ICsxMjMyLDM1IEBAIHN0 YXRpYyBib29sIGNhbGNfcGxsX21heF92Y29fY29uc3RydWN0KAogCQkJc3RydWN0IGNhbGNfcGxs X2Nsb2NrX3NvdXJjZV9pbml0X2RhdGEgKmluaXRfZGF0YSkKIHsKIAl1aW50MzJfdCBpOwotCXN0 cnVjdCBkY19maXJtd2FyZV9pbmZvIGZ3X2luZm8gPSB7IHsgMCB9IH07CisJc3RydWN0IGRjX2Zp cm13YXJlX2luZm8gKmZ3X2luZm8gPSAmaW5pdF9kYXRhLT5icC0+ZndfaW5mbzsKIAlpZiAoY2Fs Y19wbGxfY3MgPT0gTlVMTCB8fAogCQkJaW5pdF9kYXRhID09IE5VTEwgfHwKIAkJCWluaXRfZGF0 YS0+YnAgPT0gTlVMTCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKGluaXRfZGF0YS0+YnAtPmZ1 bmNzLT5nZXRfZmlybXdhcmVfaW5mbygKLQkJCQlpbml0X2RhdGEtPmJwLAotCQkJCSZmd19pbmZv KSAhPSBCUF9SRVNVTFRfT0spCisJaWYgKGluaXRfZGF0YS0+YnAtPmZ3X2luZm9fdmFsaWQpCiAJ CXJldHVybiBmYWxzZTsKIAogCWNhbGNfcGxsX2NzLT5jdHggPSBpbml0X2RhdGEtPmN0eDsKLQlj YWxjX3BsbF9jcy0+cmVmX2ZyZXFfa2h6ID0gZndfaW5mby5wbGxfaW5mby5jcnlzdGFsX2ZyZXF1 ZW5jeTsKKwljYWxjX3BsbF9jcy0+cmVmX2ZyZXFfa2h6ID0gZndfaW5mby0+cGxsX2luZm8uY3J5 c3RhbF9mcmVxdWVuY3k7CiAJY2FsY19wbGxfY3MtPm1pbl92Y29fa2h6ID0KLQkJCWZ3X2luZm8u cGxsX2luZm8ubWluX291dHB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CisJCQlmd19pbmZvLT5w bGxfaW5mby5taW5fb3V0cHV0X3B4bF9jbGtfcGxsX2ZyZXF1ZW5jeTsKIAljYWxjX3BsbF9jcy0+ bWF4X3Zjb19raHogPQotCQkJZndfaW5mby5wbGxfaW5mby5tYXhfb3V0cHV0X3B4bF9jbGtfcGxs X2ZyZXF1ZW5jeTsKKwkJCWZ3X2luZm8tPnBsbF9pbmZvLm1heF9vdXRwdXRfcHhsX2Nsa19wbGxf ZnJlcXVlbmN5OwogCiAJaWYgKGluaXRfZGF0YS0+bWF4X292ZXJyaWRlX2lucHV0X3B4bF9jbGtf cGxsX2ZyZXFfa2h6ICE9IDApCiAJCWNhbGNfcGxsX2NzLT5tYXhfcGxsX2lucHV0X2ZyZXFfa2h6 ID0KIAkJCWluaXRfZGF0YS0+bWF4X292ZXJyaWRlX2lucHV0X3B4bF9jbGtfcGxsX2ZyZXFfa2h6 OwogCWVsc2UKIAkJY2FsY19wbGxfY3MtPm1heF9wbGxfaW5wdXRfZnJlcV9raHogPQotCQkJZndf aW5mby5wbGxfaW5mby5tYXhfaW5wdXRfcHhsX2Nsa19wbGxfZnJlcXVlbmN5OworCQkJZndfaW5m by0+cGxsX2luZm8ubWF4X2lucHV0X3B4bF9jbGtfcGxsX2ZyZXF1ZW5jeTsKIAogCWlmIChpbml0 X2RhdGEtPm1pbl9vdmVycmlkZV9pbnB1dF9weGxfY2xrX3BsbF9mcmVxX2toeiAhPSAwKQogCQlj YWxjX3BsbF9jcy0+bWluX3BsbF9pbnB1dF9mcmVxX2toeiA9CiAJCQlpbml0X2RhdGEtPm1pbl9v dmVycmlkZV9pbnB1dF9weGxfY2xrX3BsbF9mcmVxX2toejsKIAllbHNlCiAJCWNhbGNfcGxsX2Nz LT5taW5fcGxsX2lucHV0X2ZyZXFfa2h6ID0KLQkJCWZ3X2luZm8ucGxsX2luZm8ubWluX2lucHV0 X3B4bF9jbGtfcGxsX2ZyZXF1ZW5jeTsKKwkJCWZ3X2luZm8tPnBsbF9pbmZvLm1pbl9pbnB1dF9w eGxfY2xrX3BsbF9mcmVxdWVuY3k7CiAKIAljYWxjX3BsbF9jcy0+bWluX3BpeF9jbG9ja19wbGxf cG9zdF9kaXZpZGVyID0KIAkJCWluaXRfZGF0YS0+bWluX3BpeF9jbGtfcGxsX3Bvc3RfZGl2aWRl cjsKQEAgLTEzMTQsNyArMTMxMiw2IEBAIGJvb2wgZGNlMTEwX2Nsa19zcmNfY29uc3RydWN0KAog CWNvbnN0IHN0cnVjdCBkY2UxMTBfY2xrX3NyY19zaGlmdCAqY3Nfc2hpZnQsCiAJY29uc3Qgc3Ry dWN0IGRjZTExMF9jbGtfc3JjX21hc2sgKmNzX21hc2spCiB7Ci0Jc3RydWN0IGRjX2Zpcm13YXJl X2luZm8gZndfaW5mbyA9IHsgeyAwIH0gfTsKIAlzdHJ1Y3QgY2FsY19wbGxfY2xvY2tfc291cmNl X2luaXRfZGF0YSBjYWxjX3BsbF9jc19pbml0X2RhdGFfaGRtaTsKIAlzdHJ1Y3QgY2FsY19wbGxf Y2xvY2tfc291cmNlX2luaXRfZGF0YSBjYWxjX3BsbF9jc19pbml0X2RhdGE7CiAKQEAgLTEzMjcs MTQgKzEzMjQsMTIgQEAgYm9vbCBkY2UxMTBfY2xrX3NyY19jb25zdHJ1Y3QoCiAJY2xrX3NyYy0+ Y3Nfc2hpZnQgPSBjc19zaGlmdDsKIAljbGtfc3JjLT5jc19tYXNrID0gY3NfbWFzazsKIAotCWlm IChjbGtfc3JjLT5iaW9zLT5mdW5jcy0+Z2V0X2Zpcm13YXJlX2luZm8oCi0JCQljbGtfc3JjLT5i aW9zLCAmZndfaW5mbykgIT0gQlBfUkVTVUxUX09LKSB7CisJaWYgKCFjbGtfc3JjLT5iaW9zLT5m d19pbmZvX3ZhbGlkKSB7CiAJCUFTU0VSVF9DUklUSUNBTChmYWxzZSk7CiAJCWdvdG8gdW5leHBl Y3RlZF9mYWlsdXJlOwogCX0KIAotCWNsa19zcmMtPmV4dF9jbGtfa2h6ID0KLQkJCWZ3X2luZm8u ZXh0ZXJuYWxfY2xvY2tfc291cmNlX2ZyZXF1ZW5jeV9mb3JfZHA7CisJY2xrX3NyYy0+ZXh0X2Ns a19raHogPSBjbGtfc3JjLT5iaW9zLT5md19pbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVx dWVuY3lfZm9yX2RwOwogCiAJLyogc3RydWN0dXJlIG5vcm1hbGx5IHVzZWQgd2l0aCBQTEwgcmFu Z2VzIGZyb20gQVRPTUJJT1M7IERTIG9uIGJ5IGRlZmF1bHQgKi8KIAljYWxjX3BsbF9jc19pbml0 X2RhdGEuYnAgPSBiaW9zOwpAQCAtMTM3NCw3ICsxMzY5LDcgQEAgYm9vbCBkY2UxMTBfY2xrX3Ny Y19jb25zdHJ1Y3QoCiAJCQlGUkFDVF9GQl9ESVZJREVSX0RFQ19QT0lOVFNfTUFYX05VTTsKIAlj YWxjX3BsbF9jc19pbml0X2RhdGFfaGRtaS5jdHggPSBjdHg7CiAKLQljbGtfc3JjLT5yZWZfZnJl cV9raHogPSBmd19pbmZvLnBsbF9pbmZvLmNyeXN0YWxfZnJlcXVlbmN5OworCWNsa19zcmMtPnJl Zl9mcmVxX2toeiA9IGNsa19zcmMtPmJpb3MtPmZ3X2luZm8ucGxsX2luZm8uY3J5c3RhbF9mcmVx dWVuY3k7CiAKIAlpZiAoY2xrX3NyYy0+YmFzZS5pZCA9PSBDTE9DS19TT1VSQ0VfSURfRVhURVJO QUwpCiAJCXJldHVybiB0cnVlOwpAQCAtMTQxNyw4ICsxNDEyLDYgQEAgYm9vbCBkY2UxMTJfY2xr X3NyY19jb25zdHJ1Y3QoCiAJY29uc3Qgc3RydWN0IGRjZTExMF9jbGtfc3JjX3NoaWZ0ICpjc19z aGlmdCwKIAljb25zdCBzdHJ1Y3QgZGNlMTEwX2Nsa19zcmNfbWFzayAqY3NfbWFzaykKIHsKLQlz dHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBmd19pbmZvID0geyB7IDAgfSB9OwotCiAJY2xrX3NyYy0+ YmFzZS5jdHggPSBjdHg7CiAJY2xrX3NyYy0+YmlvcyA9IGJpb3M7CiAJY2xrX3NyYy0+YmFzZS5p ZCA9IGlkOwpAQCAtMTQyOCwxMyArMTQyMSwxMiBAQCBib29sIGRjZTExMl9jbGtfc3JjX2NvbnN0 cnVjdCgKIAljbGtfc3JjLT5jc19zaGlmdCA9IGNzX3NoaWZ0OwogCWNsa19zcmMtPmNzX21hc2sg PSBjc19tYXNrOwogCi0JaWYgKGNsa19zcmMtPmJpb3MtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5m bygKLQkJCWNsa19zcmMtPmJpb3MsICZmd19pbmZvKSAhPSBCUF9SRVNVTFRfT0spIHsKKwlpZiAo IWNsa19zcmMtPmJpb3MtPmZ3X2luZm9fdmFsaWQpIHsKIAkJQVNTRVJUX0NSSVRJQ0FMKGZhbHNl KTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAotCWNsa19zcmMtPmV4dF9jbGtfa2h6ID0gZndfaW5m by5leHRlcm5hbF9jbG9ja19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcDsKKwljbGtfc3JjLT5leHRf Y2xrX2toeiA9IGNsa19zcmMtPmJpb3MtPmZ3X2luZm8uZXh0ZXJuYWxfY2xvY2tfc291cmNlX2Zy ZXF1ZW5jeV9mb3JfZHA7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNlX2kyY19ody5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2RjZS9kY2VfaTJjX2h3LmMKaW5kZXggYjI3ODZhNzA0NzA4Li5jYWFj ZTUyMjk4MjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2Uv ZGNlX2kyY19ody5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UvZGNl X2kyY19ody5jCkBAIC05NiwxNyArOTYsNiBAQCBzdGF0aWMgdWludDMyX3QgZ2V0X2h3X2J1ZmZl cl9hdmFpbGFibGVfc2l6ZSgKIAkJCWRjZV9pMmNfaHctPmJ1ZmZlcl91c2VkX2J5dGVzOwogfQog Ci11aW50MzJfdCBnZXRfcmVmZXJlbmNlX2Nsb2NrKAotCQlzdHJ1Y3QgZGNfYmlvcyAqYmlvcykK LXsKLQlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBpbmZvID0geyB7IDAgfSB9OwotCi0JaWYgKGJp b3MtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhiaW9zLCAmaW5mbykgIT0gQlBfUkVTVUxUX09L KQotCQlyZXR1cm4gMDsKLQotCXJldHVybiBpbmZvLnBsbF9pbmZvLmNyeXN0YWxfZnJlcXVlbmN5 OwotfQotCiBzdGF0aWMgdWludDMyX3QgZ2V0X3NwZWVkKAogCWNvbnN0IHN0cnVjdCBkY2VfaTJj X2h3ICpkY2VfaTJjX2h3KQogewpAQCAtNjI5LDcgKzYxOCw3IEBAIHZvaWQgZGNlX2kyY19od19j b25zdHJ1Y3QoCiB7CiAJZGNlX2kyY19ody0+Y3R4ID0gY3R4OwogCWRjZV9pMmNfaHctPmVuZ2lu ZV9pZCA9IGVuZ2luZV9pZDsKLQlkY2VfaTJjX2h3LT5yZWZlcmVuY2VfZnJlcXVlbmN5ID0gZ2V0 X3JlZmVyZW5jZV9jbG9jayhjdHgtPmRjX2Jpb3MpID4+IDE7CisJZGNlX2kyY19ody0+cmVmZXJl bmNlX2ZyZXF1ZW5jeSA9IChjdHgtPmRjX2Jpb3MtPmZ3X2luZm8ucGxsX2luZm8uY3J5c3RhbF9m cmVxdWVuY3kpID4+IDE7CiAJZGNlX2kyY19ody0+cmVncyA9IHJlZ3M7CiAJZGNlX2kyY19ody0+ c2hpZnRzID0gc2hpZnRzOwogCWRjZV9pMmNfaHctPm1hc2tzID0gbWFza3M7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTAwL2RjZTEwMF9yZXNvdXJjZS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTEwMC9kY2UxMDBfcmVzb3VyY2Uu YwppbmRleCBhZTg3YzUwMTc3NTYuLmFhMTY4OWZlZjNhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTEwMC9kY2UxMDBfcmVzb3VyY2UuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTAwL2RjZTEwMF9yZXNvdXJjZS5jCkBAIC05 MDcsNyArOTA3LDYgQEAgc3RhdGljIGJvb2wgY29uc3RydWN0KAogewogCXVuc2lnbmVkIGludCBp OwogCXN0cnVjdCBkY19jb250ZXh0ICpjdHggPSBkYy0+Y3R4OwotCXN0cnVjdCBkY19maXJtd2Fy ZV9pbmZvIGluZm87CiAJc3RydWN0IGRjX2Jpb3MgKmJwOwogCiAJY3R4LT5kY19iaW9zLT5yZWdz ID0gJmJpb3NfcmVnczsKQEAgLTkxOCw4ICs5MTcsNyBAQCBzdGF0aWMgYm9vbCBjb25zdHJ1Y3Qo CiAKIAlicCA9IGN0eC0+ZGNfYmlvczsKIAotCWlmICgoYnAtPmZ1bmNzLT5nZXRfZmlybXdhcmVf aW5mbyhicCwgJmluZm8pID09IEJQX1JFU1VMVF9PSykgJiYKLQkJaW5mby5leHRlcm5hbF9jbG9j a19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcCAhPSAwKSB7CisJaWYgKGJwLT5md19pbmZvX3ZhbGlk ICYmIGJwLT5md19pbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwICE9 IDApIHsKIAkJcG9vbC0+YmFzZS5kcF9jbG9ja19zb3VyY2UgPQogCQkJCWRjZTEwMF9jbG9ja19z b3VyY2VfY3JlYXRlKGN0eCwgYnAsIENMT0NLX1NPVVJDRV9JRF9FWFRFUk5BTCwgTlVMTCwgdHJ1 ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAv ZGNlMTEwX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEw L2RjZTExMF9yZXNvdXJjZS5jCmluZGV4IDExM2NmYjNkOTcyYy4uZGYzNGE2ZGU1NmNiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9yZXNv dXJjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEw X3Jlc291cmNlLmMKQEAgLTEyNzIsNyArMTI3Miw2IEBAIHN0YXRpYyBib29sIGNvbnN0cnVjdCgK IHsKIAl1bnNpZ25lZCBpbnQgaTsKIAlzdHJ1Y3QgZGNfY29udGV4dCAqY3R4ID0gZGMtPmN0eDsK LQlzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyBpbmZvOwogCXN0cnVjdCBkY19iaW9zICpicDsKIAog CWN0eC0+ZGNfYmlvcy0+cmVncyA9ICZiaW9zX3JlZ3M7CkBAIC0xMjk4LDggKzEyOTcsNyBAQCBz dGF0aWMgYm9vbCBjb25zdHJ1Y3QoCiAKIAlicCA9IGN0eC0+ZGNfYmlvczsKIAotCWlmICgoYnAt PmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhicCwgJmluZm8pID09IEJQX1JFU1VMVF9PSykgJiYK LQkJaW5mby5leHRlcm5hbF9jbG9ja19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcCAhPSAwKSB7CisJ aWYgKGJwLT5md19pbmZvX3ZhbGlkICYmIGJwLT5md19pbmZvLmV4dGVybmFsX2Nsb2NrX3NvdXJj ZV9mcmVxdWVuY3lfZm9yX2RwICE9IDApIHsKIAkJcG9vbC0+YmFzZS5kcF9jbG9ja19zb3VyY2Ug PQogCQkJCWRjZTExMF9jbG9ja19zb3VyY2VfY3JlYXRlKGN0eCwgYnAsIENMT0NLX1NPVVJDRV9J RF9FWFRFUk5BTCwgTlVMTCwgdHJ1ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9kY2U4MC9kY2U4MF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2RjZTgwL2RjZTgwX3Jlc291cmNlLmMKaW5kZXggMWRjY2Q1OWM1OWM1Li44 NjI2NTc5ZDNjMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9k Y2U4MC9kY2U4MF9yZXNvdXJjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9k Yy9kY2U4MC9kY2U4MF9yZXNvdXJjZS5jCkBAIC04NzQsNyArODc0LDYgQEAgc3RhdGljIGJvb2wg ZGNlODBfY29uc3RydWN0KAogewogCXVuc2lnbmVkIGludCBpOwogCXN0cnVjdCBkY19jb250ZXh0 ICpjdHggPSBkYy0+Y3R4OwotCXN0cnVjdCBkY19maXJtd2FyZV9pbmZvIGluZm87CiAJc3RydWN0 IGRjX2Jpb3MgKmJwOwogCiAJY3R4LT5kY19iaW9zLT5yZWdzID0gJmJpb3NfcmVnczsKQEAgLTkw MCw4ICs4OTksNyBAQCBzdGF0aWMgYm9vbCBkY2U4MF9jb25zdHJ1Y3QoCiAKIAlicCA9IGN0eC0+ ZGNfYmlvczsKIAotCWlmICgoYnAtPmZ1bmNzLT5nZXRfZmlybXdhcmVfaW5mbyhicCwgJmluZm8p ID09IEJQX1JFU1VMVF9PSykgJiYKLQkJaW5mby5leHRlcm5hbF9jbG9ja19zb3VyY2VfZnJlcXVl bmN5X2Zvcl9kcCAhPSAwKSB7CisJaWYgKGJwLT5md19pbmZvX3ZhbGlkICYmIGJwLT5md19pbmZv LmV4dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwICE9IDApIHsKIAkJcG9vbC0+ YmFzZS5kcF9jbG9ja19zb3VyY2UgPQogCQkJCWRjZTgwX2Nsb2NrX3NvdXJjZV9jcmVhdGUoY3R4 LCBicCwgQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMLCBOVUxMLCB0cnVlKTsKIApAQCAtMTA3Myw3 ICsxMDcxLDYgQEAgc3RhdGljIGJvb2wgZGNlODFfY29uc3RydWN0KAogewogCXVuc2lnbmVkIGlu dCBpOwogCXN0cnVjdCBkY19jb250ZXh0ICpjdHggPSBkYy0+Y3R4OwotCXN0cnVjdCBkY19maXJt d2FyZV9pbmZvIGluZm87CiAJc3RydWN0IGRjX2Jpb3MgKmJwOwogCiAJY3R4LT5kY19iaW9zLT5y ZWdzID0gJmJpb3NfcmVnczsKQEAgLTEwOTksOCArMTA5Niw3IEBAIHN0YXRpYyBib29sIGRjZTgx X2NvbnN0cnVjdCgKIAogCWJwID0gY3R4LT5kY19iaW9zOwogCi0JaWYgKChicC0+ZnVuY3MtPmdl dF9maXJtd2FyZV9pbmZvKGJwLCAmaW5mbykgPT0gQlBfUkVTVUxUX09LKSAmJgotCQlpbmZvLmV4 dGVybmFsX2Nsb2NrX3NvdXJjZV9mcmVxdWVuY3lfZm9yX2RwICE9IDApIHsKKwlpZiAoYnAtPmZ3 X2luZm9fdmFsaWQgJiYgYnAtPmZ3X2luZm8uZXh0ZXJuYWxfY2xvY2tfc291cmNlX2ZyZXF1ZW5j eV9mb3JfZHAgIT0gMCkgewogCQlwb29sLT5iYXNlLmRwX2Nsb2NrX3NvdXJjZSA9CiAJCQkJZGNl ODBfY2xvY2tfc291cmNlX2NyZWF0ZShjdHgsIGJwLCBDTE9DS19TT1VSQ0VfSURfRVhURVJOQUws IE5VTEwsIHRydWUpOwogCkBAIC0xMjcyLDcgKzEyNjgsNiBAQCBzdGF0aWMgYm9vbCBkY2U4M19j b25zdHJ1Y3QoCiB7CiAJdW5zaWduZWQgaW50IGk7CiAJc3RydWN0IGRjX2NvbnRleHQgKmN0eCA9 IGRjLT5jdHg7Ci0Jc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gaW5mbzsKIAlzdHJ1Y3QgZGNfYmlv cyAqYnA7CiAKIAljdHgtPmRjX2Jpb3MtPnJlZ3MgPSAmYmlvc19yZWdzOwpAQCAtMTI5OCw4ICsx MjkzLDcgQEAgc3RhdGljIGJvb2wgZGNlODNfY29uc3RydWN0KAogCiAJYnAgPSBjdHgtPmRjX2Jp b3M7CiAKLQlpZiAoKGJwLT5mdW5jcy0+Z2V0X2Zpcm13YXJlX2luZm8oYnAsICZpbmZvKSA9PSBC UF9SRVNVTFRfT0spICYmCi0JCWluZm8uZXh0ZXJuYWxfY2xvY2tfc291cmNlX2ZyZXF1ZW5jeV9m b3JfZHAgIT0gMCkgeworCWlmIChicC0+ZndfaW5mb192YWxpZCAmJiBicC0+ZndfaW5mby5leHRl cm5hbF9jbG9ja19zb3VyY2VfZnJlcXVlbmN5X2Zvcl9kcCAhPSAwKSB7CiAJCXBvb2wtPmJhc2Uu ZHBfY2xvY2tfc291cmNlID0KIAkJCQlkY2U4MF9jbG9ja19zb3VyY2VfY3JlYXRlKGN0eCwgYnAs IENMT0NLX1NPVVJDRV9JRF9FWFRFUk5BTCwgTlVMTCwgdHJ1ZSk7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h3c2VxLmMKaW5kZXggMjdkMTQz NDE4Y2M3Li5mYjdjZGUzM2M4OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5jCkBAIC01NjgsNyArNTY4LDYgQEAgc3RhdGljIHZv aWQgZGNuMjBfaW5pdF9odyhzdHJ1Y3QgZGMgKmRjKQogCXN0cnVjdCBkY19iaW9zICpkY2IgPSBk Yy0+Y3R4LT5kY19iaW9zOwogCXN0cnVjdCByZXNvdXJjZV9wb29sICpyZXNfcG9vbCA9IGRjLT5y ZXNfcG9vbDsKIAlzdHJ1Y3QgZGNfc3RhdGUgICpjb250ZXh0ID0gZGMtPmN1cnJlbnRfc3RhdGU7 Ci0Jc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbyA9IHsgeyAwIH0gfTsKIAogCWlmIChk Yy0+Y2xrX21nciAmJiBkYy0+Y2xrX21nci0+ZnVuY3MtPmluaXRfY2xvY2tzKQogCQlkYy0+Y2xr X21nci0+ZnVuY3MtPmluaXRfY2xvY2tzKGRjLT5jbGtfbWdyKTsKQEAgLTU5MiwxNSArNTkxLDE1 IEBAIHN0YXRpYyB2b2lkIGRjbjIwX2luaXRfaHcoc3RydWN0IGRjICpkYykKIAl9IGVsc2Ugewog CQlpZiAoIWRjYi0+ZnVuY3MtPmlzX2FjY2VsZXJhdGVkX21vZGUoZGNiKSkgewogCQkJYmlvc19n b2xkZW5faW5pdChkYyk7Ci0JCQlpZiAoZGMtPmN0eC0+ZGNfYmlvcy0+ZnVuY3MtPmdldF9maXJt d2FyZV9pbmZvKAotCQkJCQlkYy0+Y3R4LT5kY19iaW9zLCAmZndfaW5mbykgPT0gQlBfUkVTVUxU X09LKSB7Ci0JCQkJcmVzX3Bvb2wtPnJlZl9jbG9ja3MueHRhbGluX2Nsb2NrX2luS2h6ID0gZndf aW5mby5wbGxfaW5mby5jcnlzdGFsX2ZyZXF1ZW5jeTsKKwkJCWlmIChkYy0+Y3R4LT5kY19iaW9z LT5md19pbmZvX3ZhbGlkKSB7CisJCQkJcmVzX3Bvb2wtPnJlZl9jbG9ja3MueHRhbGluX2Nsb2Nr X2luS2h6ID0KKwkJCQkJCWRjLT5jdHgtPmRjX2Jpb3MtPmZ3X2luZm8ucGxsX2luZm8uY3J5c3Rh bF9mcmVxdWVuY3k7CiAKIAkJCQlpZiAoIUlTX0ZQR0FfTUFYSU1VU19EQyhkYy0+Y3R4LT5kY2Vf ZW52aXJvbm1lbnQpKSB7CiAJCQkJCWlmIChyZXNfcG9vbC0+ZGNjZyAmJiByZXNfcG9vbC0+aHVi YnViKSB7CiAKIAkJCQkJCShyZXNfcG9vbC0+ZGNjZy0+ZnVuY3MtPmdldF9kY2NnX3JlZl9mcmVx KShyZXNfcG9vbC0+ZGNjZywKLQkJCQkJCQkJZndfaW5mby5wbGxfaW5mby5jcnlzdGFsX2ZyZXF1 ZW5jeSwKKwkJCQkJCQkJZGMtPmN0eC0+ZGNfYmlvcy0+ZndfaW5mby5wbGxfaW5mby5jcnlzdGFs X2ZyZXF1ZW5jeSwKIAkJCQkJCQkJJnJlc19wb29sLT5yZWZfY2xvY2tzLmRjY2dfcmVmX2Nsb2Nr X2luS2h6KTsKIAogCQkJCQkJKHJlc19wb29sLT5odWJidWItPmZ1bmNzLT5nZXRfZGNodWJfcmVm X2ZyZXEpKHJlc19wb29sLT5odWJidWIsCi0tIAoyLjIyLjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vYW1kLWdmeA==