From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Lai Subject: [PATCH v2 Altp2m cleanup v3 3/3] Making altp2m struct dynamically allocated. Date: Fri, 19 Aug 2016 10:22:13 -0700 Message-ID: <1471627333-4534-4-git-send-email-paul.c.lai@intel.com> References: <1471627333-4534-1-git-send-email-paul.c.lai@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1471627333-4534-1-git-send-email-paul.c.lai@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xensource.com Cc: ravi.sahita@intel.com, george.dunlap@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org UmF2aSBTYWhpdGEncyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgYWx0cDJtIHN0cnVjdHMKClNpZ25l ZC1vZmYtYnk6IFBhdWwgTGFpIDxwYXVsLmMubGFpQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFJh dmkgU2FoaXRhIDxyYXZpLnNhaGl0YUBpbnRlbC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2h2bS9o dm0uYyAgICAgICB8ICA4ICsrKy0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgICB8ICAy ICstCiB4ZW4vYXJjaC94ODYvbW0vYWx0cDJtLmMgICAgIHwgMTggKysrKysrLS0tLS0tLQogeGVu L2FyY2gveDg2L21tL21tLWxvY2tzLmggICB8ICA0ICstLQogeGVuL2FyY2gveDg2L21tL3AybS1l cHQuYyAgICB8IDEwICsrKystLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgIHwgNjEg KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9jb21tb24v bW9uaXRvci5jICAgICAgICAgfCAgMSArCiB4ZW4vaW5jbHVkZS9hc20teDg2L2FsdHAybS5oIHwg IDcgKysrKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggfCAgNiArKy0tLQogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wMm0uaCAgICB8ICA5ICsrKysrKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDcy IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDE5OTVmYTQuLjExNWQ4 ZTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYwpAQCAtNTI0NSw3ICs1MjQ1LDcgQEAgc3RhdGljIGludCBkb19hbHRwMm1fb3Ao CiAKICAgICBpZiAoIChhLmNtZCAhPSBIVk1PUF9hbHRwMm1fZ2V0X2RvbWFpbl9zdGF0ZSkgJiYK ICAgICAgICAgIChhLmNtZCAhPSBIVk1PUF9hbHRwMm1fc2V0X2RvbWFpbl9zdGF0ZSkgJiYKLSAg ICAgICAgICFkLT5hcmNoLmFsdHAybV9hY3RpdmUgKQorICAgICAgICAgIWFsdHAybV9hY3RpdmUo ZCkgKQogICAgIHsKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgZ290byBvdXQ7 CkBAIC01Mjc5LDExICs1Mjc5LDExIEBAIHN0YXRpYyBpbnQgZG9fYWx0cDJtX29wKAogICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBvc3RhdGUgPSBkLT5hcmNoLmFsdHAy bV9hY3RpdmU7Ci0gICAgICAgIGQtPmFyY2guYWx0cDJtX2FjdGl2ZSA9ICEhYS51LmRvbWFpbl9z dGF0ZS5zdGF0ZTsKKyAgICAgICAgb3N0YXRlID0gYWx0cDJtX2FjdGl2ZShkKTsKKyAgICAgICAg c2V0X2FsdHAybV9hY3RpdmUoZCwgISFhLnUuZG9tYWluX3N0YXRlLnN0YXRlKTsKIAogICAgICAg ICAvKiBJZiB0aGUgYWx0ZXJuYXRlIHAybSBzdGF0ZSBoYXMgY2hhbmdlZCwgaGFuZGxlIGFwcHJv cHJpYXRlbHkgKi8KLSAgICAgICAgaWYgKCBkLT5hcmNoLmFsdHAybV9hY3RpdmUgIT0gb3N0YXRl ICYmCisgICAgICAgIGlmICggYWx0cDJtX2FjdGl2ZShkKSAhPSBvc3RhdGUgJiYKICAgICAgICAg ICAgICAob3N0YXRlIHx8ICEocmMgPSBwMm1faW5pdF9hbHRwMm1fYnlfaWQoZCwgMCkpKSApCiAg ICAgICAgIHsKICAgICAgICAgICAgIGZvcl9lYWNoX3ZjcHUoIGQsIHYgKQpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpp bmRleCAzZDMzMGI2Li5lN2M4ZDA0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92 bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtMjAxOCw3ICsyMDE4LDcg QEAgc3RhdGljIHZvaWQgdm14X3ZjcHVfdXBkYXRlX3ZtZnVuY192ZShzdHJ1Y3QgdmNwdSAqdikK ICAgICB7CiAgICAgICAgIHYtPmFyY2guaHZtX3ZteC5zZWNvbmRhcnlfZXhlY19jb250cm9sIHw9 IG1hc2s7CiAgICAgICAgIF9fdm13cml0ZShWTV9GVU5DVElPTl9DT05UUk9MLCBWTVhfVk1GVU5D X0VQVFBfU1dJVENISU5HKTsKLSAgICAgICAgX192bXdyaXRlKEVQVFBfTElTVF9BRERSLCB2aXJ0 X3RvX21hZGRyKGQtPmFyY2guYWx0cDJtX2VwdHApKTsKKyAgICAgICAgX192bXdyaXRlKEVQVFBf TElTVF9BRERSLCB2aXJ0X3RvX21hZGRyKGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cCkpOwog CiAgICAgICAgIGlmICggY3B1X2hhc192bXhfdmlydF9leGNlcHRpb25zICkKICAgICAgICAgewpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL2FsdHAybS5jIGIveGVuL2FyY2gveDg2L21tL2Fs dHAybS5jCmluZGV4IGNjOWIwZmMuLmVlYzlmZmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9hbHRwMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vYWx0cDJtLmMKQEAgLTczLDIzICs3Mywy MyBAQCBodm1fYWx0cDJtX2luaXQoIHN0cnVjdCBkb21haW4gKmQpCiAgICAgdW5zaWduZWQgaW50 IGkgPSAwOwogCiAgICAgLyogSW5pdCBhbHRlcm5hdGUgcDJtIGRhdGEuICovCi0gICAgaWYgKCAo ZC0+YXJjaC5hbHRwMm1fZXB0cCA9IGFsbG9jX3hlbmhlYXBfcGFnZSgpKSA9PSBOVUxMICkKKyAg ICBpZiAoIChkLT5hcmNoLmFsdHAybS0+YWx0cDJtX2VwdHAgPSBhbGxvY194ZW5oZWFwX3BhZ2Uo KSkgPT0gTlVMTCApCiAgICAgewogICAgICAgICByYyA9IC1FTk9NRU07CiAgICAgICAgIGdvdG8g b3V0OwogICAgIH0KIAogICAgIGZvciAoIGkgPSAwOyBpIDwgTUFYX0VQVFA7IGkrKyApCi0gICAg ICAgIGQtPmFyY2guYWx0cDJtX2VwdHBbaV0gPSBtZm5feChJTlZBTElEX01GTik7CisgICAgICAg IGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cFtpXSA9IG1mbl94KElOVkFMSURfTUZOKTsKIAog ICAgIGZvciAoIGkgPSAwOyBpIDwgTUFYX0FMVFAyTTsgaSsrICkKICAgICB7Ci0gICAgICAgIHJj ID0gcDJtX2FsbG9jX3RhYmxlKGQtPmFyY2guYWx0cDJtX3AybVtpXSk7CisgICAgICAgIHJjID0g cDJtX2FsbG9jX3RhYmxlKGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2ldKTsKICAgICAgICAg aWYgKCByYyAhPSAwICkKICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCi0gICAgZC0+YXJj aC5hbHRwMm1fYWN0aXZlID0gMDsKKyAgICBzZXRfYWx0cDJtX2FjdGl2ZShkLCAwKTsKICBvdXQ6 CiAgICAgcmV0dXJuIHJjOwogfQpAQCAtOTgsMTYgKzk4LDE2IEBAIHZvaWQKIGh2bV9hbHRwMm1f dGVhcmRvd24oIHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgdW5zaWduZWQgaW50IGkgPSAwOwot ICAgIGQtPmFyY2guYWx0cDJtX2FjdGl2ZSA9IDA7CisgICAgc2V0X2FsdHAybV9hY3RpdmUoZCwg MCk7CiAKLSAgICBpZiAoIGQtPmFyY2guYWx0cDJtX2VwdHAgKQorICAgIGlmICggZC0+YXJjaC5h bHRwMm0tPmFsdHAybV9lcHRwICkKICAgICB7Ci0gICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlKGQt PmFyY2guYWx0cDJtX2VwdHApOwotICAgICAgICBkLT5hcmNoLmFsdHAybV9lcHRwID0gTlVMTDsK KyAgICAgICAgZnJlZV94ZW5oZWFwX3BhZ2UoZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwKTsK KyAgICAgICAgZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwID0gTlVMTDsKICAgICB9CiAKICAg ICBmb3IgKCBpID0gMDsgaSA8IE1BWF9BTFRQMk07IGkrKyApCi0gICAgICAgIHAybV90ZWFyZG93 bihkLT5hcmNoLmFsdHAybV9wMm1baV0pOworICAgICAgICBwMm1fdGVhcmRvd24oZC0+YXJjaC5h bHRwMm0tPmFsdHAybV9wMm1baV0pOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L21tL21tLWxvY2tzLmggYi94ZW4vYXJjaC94ODYvbW0vbW0tbG9ja3MuaAppbmRleCAwODZjOGJi Li40ZDE3YjBhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vbW0tbG9ja3MuaAorKysgYi94 ZW4vYXJjaC94ODYvbW0vbW0tbG9ja3MuaApAQCAtMjUxLDggKzI1MSw4IEBAIGRlY2xhcmVfbW1f cndsb2NrKHAybSk7CiAgKi8KIAogZGVjbGFyZV9tbV9sb2NrKGFsdHAybWxpc3QpCi0jZGVmaW5l IGFsdHAybV9saXN0X2xvY2soZCkgICBtbV9sb2NrKGFsdHAybWxpc3QsICYoZCktPmFyY2guYWx0 cDJtX2xpc3RfbG9jaykKLSNkZWZpbmUgYWx0cDJtX2xpc3RfdW5sb2NrKGQpIG1tX3VubG9jaygm KGQpLT5hcmNoLmFsdHAybV9saXN0X2xvY2spCisjZGVmaW5lIGFsdHAybV9saXN0X2xvY2soZCkg ICBtbV9sb2NrKGFsdHAybWxpc3QsICYoZCktPmFyY2guYWx0cDJtLT5hbHRwMm1fbGlzdF9sb2Nr KQorI2RlZmluZSBhbHRwMm1fbGlzdF91bmxvY2soZCkgbW1fdW5sb2NrKCYoZCktPmFyY2guYWx0 cDJtLT5hbHRwMm1fbGlzdF9sb2NrKQogCiAvKiBQMk0gbG9jayAocGVyLWFsdHAybS10YWJsZSkK ICAqCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jIGIveGVuL2FyY2gveDg2 L21tL3AybS1lcHQuYwppbmRleCA4MjQ3YTAyLi43NGIyNzU0IDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKQEAgLTEz MzEsMTQgKzEzMzEsMTQgQEAgdm9pZCBzZXR1cF9lcHRfZHVtcCh2b2lkKQogCiB2b2lkIHAybV9p bml0X2FsdHAybV9lcHRfaGVscGVyKCBzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaSkK IHsKLSAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2ldOwor ICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtp XTsKICAgICBzdHJ1Y3QgZXB0X2RhdGEgKmVwdDsKIAogICAgIHAybS0+bWluX3JlbWFwcGVkX2dm biA9IGdmbl94KElOVkFMSURfR0ZOKTsKLSAgICBwMm0tPm1heF9yZW1hcHBlZF9nZm4gPSAwOwor ICAgIHAybS0+bWF4X3JlbWFwcGVkX2dmbiA9IGdmbl94KF9nZm4oMFVMKSk7CiAgICAgZXB0ID0g JnAybS0+ZXB0OwogICAgIGVwdC0+YXNyID0gcGFnZXRhYmxlX2dldF9wZm4ocDJtX2dldF9wYWdl dGFibGUocDJtKSk7Ci0gICAgZC0+YXJjaC5hbHRwMm1fZXB0cFtpXSA9IGVwdF9nZXRfZXB0cChl cHQpOworICAgIGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cFtpXSA9IGVwdF9nZXRfZXB0cChl cHQpOwogfQogCiB1bnNpZ25lZCBpbnQgcDJtX2ZpbmRfYWx0cDJtX2J5X2VwdHAoc3RydWN0IGRv bWFpbiAqZCwgdWludDY0X3QgZXB0cCkKQEAgLTEzNTEsMTAgKzEzNTEsMTAgQEAgdW5zaWduZWQg aW50IHAybV9maW5kX2FsdHAybV9ieV9lcHRwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGVw dHApCiAKICAgICBmb3IgKCBpID0gMDsgaSA8IE1BWF9BTFRQMk07IGkrKyApCiAgICAgewotICAg ICAgICBpZiAoIGQtPmFyY2guYWx0cDJtX2VwdHBbaV0gPT0gbWZuX3goSU5WQUxJRF9NRk4pICkK KyAgICAgICAgaWYgKCBkLT5hcmNoLmFsdHAybS0+YWx0cDJtX2VwdHBbaV0gPT0gbWZuX3goSU5W QUxJRF9NRk4pICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHAybSA9IGQtPmFy Y2guYWx0cDJtX3AybVtpXTsKKyAgICAgICAgcDJtID0gZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9w Mm1baV07CiAgICAgICAgIGVwdCA9ICZwMm0tPmVwdDsKIAogICAgICAgICBpZiAoIGVwdHAgPT0g ZXB0X2dldF9lcHRwKGVwdCkgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIv eGVuL2FyY2gveDg2L21tL3AybS5jCmluZGV4IDc2NzM2NjMuLjk1NmNlM2EgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTE5 MywxMiArMTkzLDE1IEBAIHN0YXRpYyB2b2lkIHAybV90ZWFyZG93bl9hbHRwMm0oc3RydWN0IGRv bWFpbiAqZCkKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgTUFYX0FMVFAyTTsgaSsrICkKICAgICB7 Ci0gICAgICAgIGlmICggIWQtPmFyY2guYWx0cDJtX3AybVtpXSApCisgICAgICAgIGlmICggIWQt PmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2ldICkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg ICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1baV07CisgICAgICAgIHAybSA9IGQtPmFyY2gu YWx0cDJtLT5hbHRwMm1fcDJtW2ldOwogICAgICAgICBwMm1fZnJlZV9vbmUocDJtKTsKLSAgICAg ICAgZC0+YXJjaC5hbHRwMm1fcDJtW2ldID0gTlVMTDsKKyAgICAgICAgZC0+YXJjaC5hbHRwMm0t PmFsdHAybV9wMm1baV0gPSBOVUxMOwogICAgIH0KKworICAgIGlmICggZC0+YXJjaC5hbHRwMm0g KQorICAgICAgICB4ZnJlZShkLT5hcmNoLmFsdHAybSk7CiB9CiAKIHN0YXRpYyBpbnQgcDJtX2lu aXRfYWx0cDJtKHN0cnVjdCBkb21haW4gKmQpCkBAIC0yMDYsMTAgKzIwOSwxNCBAQCBzdGF0aWMg aW50IHAybV9pbml0X2FsdHAybShzdHJ1Y3QgZG9tYWluICpkKQogICAgIHVuc2lnbmVkIGludCBp OwogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm07CiAKLSAgICBtbV9sb2NrX2luaXQoJmQtPmFy Y2guYWx0cDJtX2xpc3RfbG9jayk7CisgICAgZC0+YXJjaC5hbHRwMm0gPSB4emFsbG9jKHN0cnVj dCBhbHRwMm1fZG9tYWluKTsKKyAgICBpZiAoIGQtPmFyY2guYWx0cDJtID09IE5VTEwgKQorICAg ICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICBtbV9sb2NrX2luaXQoJmQtPmFyY2guYWx0cDJt LT5hbHRwMm1fbGlzdF9sb2NrKTsKICAgICBmb3IgKCBpID0gMDsgaSA8IE1BWF9BTFRQMk07IGkr KyApCiAgICAgewotICAgICAgICBkLT5hcmNoLmFsdHAybV9wMm1baV0gPSBwMm0gPSBwMm1faW5p dF9vbmUoZCk7CisgICAgICAgIGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2ldID0gcDJtID0g cDJtX2luaXRfb25lKGQpOwogICAgICAgICBpZiAoIHAybSA9PSBOVUxMICkKICAgICAgICAgewog ICAgICAgICAgICAgcDJtX3RlYXJkb3duX2FsdHAybShkKTsKQEAgLTE4NDQsMTAgKzE4NTEsMTAg QEAgbG9uZyBwMm1fc2V0X21lbV9hY2Nlc3Moc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCB1 aW50MzJfdCBuciwKICAgICBpZiAoIGFsdHAybV9pZHggKQogICAgIHsKICAgICAgICAgaWYgKCBh bHRwMm1faWR4ID49IE1BWF9BTFRQMk0gfHwKLSAgICAgICAgICAgICBkLT5hcmNoLmFsdHAybV9l cHRwW2FsdHAybV9pZHhdID09IG1mbl94KElOVkFMSURfTUZOKSApCisgICAgICAgICAgICAgZC0+ YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwW2FsdHAybV9pZHhdID09IG1mbl94KElOVkFMSURfTUZO KSApCiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgICAgICBhcDJtID0gZC0+YXJj aC5hbHRwMm1fcDJtW2FsdHAybV9pZHhdOworICAgICAgICBhcDJtID0gZC0+YXJjaC5hbHRwMm0t PmFsdHAybV9wMm1bYWx0cDJtX2lkeF07CiAgICAgfQogCiAgICAgc3dpdGNoICggYWNjZXNzICkK QEAgLTIyODgsNyArMjI5NSw3IEBAIGJvb2xfdCBwMm1fc3dpdGNoX3ZjcHVfYWx0cDJtX2J5X2lk KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaWR4KQogCiAgICAgYWx0cDJtX2xpc3RfbG9j ayhkKTsKIAotICAgIGlmICggZC0+YXJjaC5hbHRwMm1fZXB0cFtpZHhdICE9IG1mbl94KElOVkFM SURfTUZOKSApCisgICAgaWYgKCBkLT5hcmNoLmFsdHAybS0+YWx0cDJtX2VwdHBbaWR4XSAhPSBt Zm5feChJTlZBTElEX01GTikgKQogICAgIHsKICAgICAgICAgaWYgKCBpZHggIT0gdmNwdV9hbHRw Mm0odikucDJtaWR4ICkKICAgICAgICAgewpAQCAtMjM3MywxMSArMjM4MCwxMSBAQCB2b2lkIHAy bV9mbHVzaF9hbHRwMm0oc3RydWN0IGRvbWFpbiAqZCkKIAogICAgIGZvciAoIGkgPSAwOyBpIDwg TUFYX0FMVFAyTTsgaSsrICkKICAgICB7Ci0gICAgICAgIHAybV9mbHVzaF90YWJsZShkLT5hcmNo LmFsdHAybV9wMm1baV0pOworICAgICAgICBwMm1fZmx1c2hfdGFibGUoZC0+YXJjaC5hbHRwMm0t PmFsdHAybV9wMm1baV0pOwogICAgICAgICAvKiBVbmluaXQgYW5kIHJlaW5pdCBlcHQgdG8gZm9y Y2UgVExCIHNob290ZG93biAqLwotICAgICAgICBlcHRfcDJtX3VuaW5pdChkLT5hcmNoLmFsdHAy bV9wMm1baV0pOwotICAgICAgICBlcHRfcDJtX2luaXQoZC0+YXJjaC5hbHRwMm1fcDJtW2ldKTsK LSAgICAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFtpXSA9IG1mbl94KElOVkFMSURfTUZOKTsKKyAg ICAgICAgZXB0X3AybV91bmluaXQoZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baV0pOworICAg ICAgICBlcHRfcDJtX2luaXQoZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baV0pOworICAgICAg ICBkLT5hcmNoLmFsdHAybS0+YWx0cDJtX2VwdHBbaV0gPSBtZm5feChJTlZBTElEX01GTik7CiAg ICAgfQogCiAgICAgYWx0cDJtX2xpc3RfdW5sb2NrKGQpOwpAQCAtMjM5Miw3ICsyMzk5LDcgQEAg aW50IHAybV9pbml0X2FsdHAybV9ieV9pZChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQg aWR4KQogCiAgICAgYWx0cDJtX2xpc3RfbG9jayhkKTsKIAotICAgIGlmICggZC0+YXJjaC5hbHRw Mm1fZXB0cFtpZHhdID09IG1mbl94KElOVkFMSURfTUZOKSApCisgICAgaWYgKCBkLT5hcmNoLmFs dHAybS0+YWx0cDJtX2VwdHBbaWR4XSA9PSBtZm5feChJTlZBTElEX01GTikgKQogICAgIHsKICAg ICAgICAgcDJtX2luaXRfYWx0cDJtX2VwdF9oZWxwZXIoZCwgaWR4KTsKICAgICAgICAgcmMgPSAw OwpAQCAtMjQxMSw3ICsyNDE4LDcgQEAgaW50IHAybV9pbml0X25leHRfYWx0cDJtKHN0cnVjdCBk b21haW4gKmQsIHVpbnQxNl90ICppZHgpCiAKICAgICBmb3IgKCBpID0gMDsgaSA8IE1BWF9BTFRQ Mk07IGkrKyApCiAgICAgewotICAgICAgICBpZiAoIGQtPmFyY2guYWx0cDJtX2VwdHBbaV0gIT0g bWZuX3goSU5WQUxJRF9NRk4pICkKKyAgICAgICAgaWYgKCBkLT5hcmNoLmFsdHAybS0+YWx0cDJt X2VwdHBbaV0gIT0gbWZuX3goSU5WQUxJRF9NRk4pICkKICAgICAgICAgICAgIGNvbnRpbnVlOwog CiAgICAgICAgIHAybV9pbml0X2FsdHAybV9lcHRfaGVscGVyKGQsIGkpOwpAQCAtMjQzNywxNyAr MjQ0NCwxNyBAQCBpbnQgcDJtX2Rlc3Ryb3lfYWx0cDJtX2J5X2lkKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGludCBpZHgpCiAKICAgICBhbHRwMm1fbGlzdF9sb2NrKGQpOwogCi0gICAgaWYg KCBkLT5hcmNoLmFsdHAybV9lcHRwW2lkeF0gIT0gbWZuX3goSU5WQUxJRF9NRk4pICkKKyAgICBp ZiAoIGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cFtpZHhdICE9IG1mbl94KElOVkFMSURfTUZO KSApCiAgICAgewotICAgICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1baWR4XTsKKyAgICAg ICAgcDJtID0gZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baWR4XTsKIAogICAgICAgICBpZiAo ICFfYXRvbWljX3JlYWQocDJtLT5hY3RpdmVfdmNwdXMpICkKICAgICAgICAgewotICAgICAgICAg ICAgcDJtX2ZsdXNoX3RhYmxlKGQtPmFyY2guYWx0cDJtX3AybVtpZHhdKTsKKyAgICAgICAgICAg IHAybV9mbHVzaF90YWJsZShkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtpZHhdKTsKICAgICAg ICAgICAgIC8qIFVuaW5pdCBhbmQgcmVpbml0IGVwdCB0byBmb3JjZSBUTEIgc2hvb3Rkb3duICov Ci0gICAgICAgICAgICBlcHRfcDJtX3VuaW5pdChkLT5hcmNoLmFsdHAybV9wMm1baWR4XSk7Ci0g ICAgICAgICAgICBlcHRfcDJtX2luaXQoZC0+YXJjaC5hbHRwMm1fcDJtW2lkeF0pOwotICAgICAg ICAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFtpZHhdID0gbWZuX3goSU5WQUxJRF9NRk4pOworICAg ICAgICAgICAgZXB0X3AybV91bmluaXQoZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baWR4XSk7 CisgICAgICAgICAgICBlcHRfcDJtX2luaXQoZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baWR4 XSk7CisgICAgICAgICAgICBkLT5hcmNoLmFsdHAybS0+YWx0cDJtX2VwdHBbaWR4XSA9IG1mbl94 KElOVkFMSURfTUZOKTsKICAgICAgICAgICAgIHJjID0gMDsKICAgICAgICAgfQogICAgIH0KQEAg LTI0NzEsNyArMjQ3OCw3IEBAIGludCBwMm1fc3dpdGNoX2RvbWFpbl9hbHRwMm1fYnlfaWQoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlkeCkKIAogICAgIGFsdHAybV9saXN0X2xvY2so ZCk7CiAKLSAgICBpZiAoIGQtPmFyY2guYWx0cDJtX2VwdHBbaWR4XSAhPSBtZm5feChJTlZBTElE X01GTikgKQorICAgIGlmICggZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwW2lkeF0gIT0gbWZu X3goSU5WQUxJRF9NRk4pICkKICAgICB7CiAgICAgICAgIGZvcl9lYWNoX3ZjcHUoIGQsIHYgKQog ICAgICAgICAgICAgaWYgKCBpZHggIT0gdmNwdV9hbHRwMm0odikucDJtaWR4ICkKQEAgLTI1MDIs MTEgKzI1MDksMTEgQEAgaW50IHAybV9jaGFuZ2VfYWx0cDJtX2dmbihzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBpbnQgaWR4LAogICAgIHVuc2lnbmVkIGludCBwYWdlX29yZGVyOwogICAgIGlu dCByYyA9IC1FSU5WQUw7CiAKLSAgICBpZiAoIGlkeCA+PSBNQVhfQUxUUDJNIHx8IGQtPmFyY2gu YWx0cDJtX2VwdHBbaWR4XSA9PSBtZm5feChJTlZBTElEX01GTikgKQorICAgIGlmICggaWR4ID49 IE1BWF9BTFRQMk0gfHwgZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwW2lkeF0gPT0gbWZuX3go SU5WQUxJRF9NRk4pICkKICAgICAgICAgcmV0dXJuIHJjOwogCiAgICAgaHAybSA9IHAybV9nZXRf aG9zdHAybShkKTsKLSAgICBhcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2lkeF07CisgICAgYXAy bSA9IGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2lkeF07CiAKICAgICBwMm1fbG9jayhhcDJt KTsKIApAQCAtMjU5NywxMCArMjYwNCwxMCBAQCB2b2lkIHAybV9hbHRwMm1fcHJvcGFnYXRlX2No YW5nZShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sCiAKICAgICBmb3IgKCBpID0gMDsgaSA8 IE1BWF9BTFRQMk07IGkrKyApCiAgICAgewotICAgICAgICBpZiAoIGQtPmFyY2guYWx0cDJtX2Vw dHBbaV0gPT0gbWZuX3goSU5WQUxJRF9NRk4pICkKKyAgICAgICAgaWYgKCBkLT5hcmNoLmFsdHAy bS0+YWx0cDJtX2VwdHBbaV0gPT0gbWZuX3goSU5WQUxJRF9NRk4pICkKICAgICAgICAgICAgIGNv bnRpbnVlOwogCi0gICAgICAgIHAybSA9IGQtPmFyY2guYWx0cDJtX3AybVtpXTsKKyAgICAgICAg cDJtID0gZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baV07CiAgICAgICAgIG0gPSBnZXRfZ2Zu X3R5cGVfYWNjZXNzKHAybSwgZ2ZuX3goZ2ZuKSwgJnQsICZhLCAwLCBOVUxMKTsKIAogICAgICAg ICAvKiBDaGVjayBmb3IgYSBkcm9wcGVkIHBhZ2UgdGhhdCBtYXkgaW1wYWN0IHRoaXMgYWx0cDJt ICovCkBAIC0yNjIxLDEwICsyNjI4LDEwIEBAIHZvaWQgcDJtX2FsdHAybV9wcm9wYWdhdGVfY2hh bmdlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwKICAgICAgICAgICAgICAgICBmb3IgKCBp ID0gMDsgaSA8IE1BWF9BTFRQMk07IGkrKyApCiAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICBpZiAoIGkgPT0gbGFzdF9yZXNldF9pZHggfHwKLSAgICAgICAgICAgICAgICAg ICAgICAgICBkLT5hcmNoLmFsdHAybV9lcHRwW2ldID09IG1mbl94KElOVkFMSURfTUZOKSApCisg ICAgICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwW2ldID09 IG1mbl94KElOVkFMSURfTUZOKSApCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK IAotICAgICAgICAgICAgICAgICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1baV07CisgICAg ICAgICAgICAgICAgICAgIHAybSA9IGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2ldOwogICAg ICAgICAgICAgICAgICAgICBwMm1fbG9jayhwMm0pOwogICAgICAgICAgICAgICAgICAgICBwMm1f cmVzZXRfYWx0cDJtKHAybSk7CiAgICAgICAgICAgICAgICAgICAgIHAybV91bmxvY2socDJtKTsK ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vbW9uaXRvci5jIGIveGVuL2NvbW1vbi9tb25pdG9yLmMK aW5kZXggYzczZDFkNS4uZDZiM2Y5MCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tb25pdG9yLmMK KysrIGIveGVuL2NvbW1vbi9tb25pdG9yLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDx4 ZW4vc2NoZWQuaD4KICNpbmNsdWRlIDx4ZW4vdm1fZXZlbnQuaD4KICNpbmNsdWRlIDx4c20veHNt Lmg+CisjaW5jbHVkZSA8YXNtL3AybS5oPgogI2luY2x1ZGUgPGFzbS9hbHRwMm0uaD4KICNpbmNs dWRlIDxhc20vbW9uaXRvci5oPgogI2luY2x1ZGUgPGFzbS92bV9ldmVudC5oPgpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRwMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0 cDJtLmgKaW5kZXggYTIzNmVkNy4uYTJlNjc0MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9hbHRwMm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdHAybS5oCkBAIC0yNCw3 ICsyNCwxMiBAQAogLyogQWx0ZXJuYXRlIHAybSBIVk0gb24vb2ZmIHBlciBkb21haW4gKi8KIHN0 YXRpYyBpbmxpbmUgYm9vbF90IGFsdHAybV9hY3RpdmUoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkK IHsKLSAgICByZXR1cm4gZC0+YXJjaC5hbHRwMm1fYWN0aXZlOworICAgIHJldHVybiBkLT5hcmNo LmFsdHAybS0+YWx0cDJtX2FjdGl2ZTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNldF9hbHRw Mm1fYWN0aXZlKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCB2KQoreworICAgIGQtPmFy Y2guYWx0cDJtLT5hbHRwMm1fYWN0aXZlID0gdjsKIH0KIAogLyogQWx0ZXJuYXRlIHAybSBWQ1BV ICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9kb21haW4uaAppbmRleCA1ODA3YTFmLi4zYjlmY2MxIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9t YWluLmgKQEAgLTI0Miw2ICsyNDIsNyBAQCB0eXBlZGVmIHhlbl9kb21jdGxfY3B1aWRfdCBjcHVp ZF9pbnB1dF90OwogI2RlZmluZSBJTlZBTElEX0FMVFAyTSAgMHhmZmZmCiAjZGVmaW5lIE1BWF9F UFRQICAgICAgICAoUEFHRV9TSVpFIC8gc2l6ZW9mKHVpbnQ2NF90KSkKIHN0cnVjdCBwMm1fZG9t YWluOworc3RydWN0IGFsdHAybV9kb21haW47CiBzdHJ1Y3QgdGltZV9zY2FsZSB7CiAgICAgaW50 IHNoaWZ0OwogICAgIHUzMiBtdWxfZnJhYzsKQEAgLTMyMCwxMCArMzIxLDcgQEAgc3RydWN0IGFy Y2hfZG9tYWluCiAgICAgbW1fbG9ja190IG5lc3RlZF9wMm1fbG9jazsKIAogICAgIC8qIGFsdHAy bTogYWxsb3cgbXVsdGlwbGUgY29waWVzIG9mIGhvc3QgcDJtICovCi0gICAgYm9vbF90IGFsdHAy bV9hY3RpdmU7Ci0gICAgc3RydWN0IHAybV9kb21haW4gKmFsdHAybV9wMm1bTUFYX0FMVFAyTV07 Ci0gICAgbW1fbG9ja190IGFsdHAybV9saXN0X2xvY2s7Ci0gICAgdWludDY0X3QgKmFsdHAybV9l cHRwOworICAgIHN0cnVjdCBhbHRwMm1fZG9tYWluICphbHRwMm07CiAKICAgICAvKiBOQi4gcHJv dGVjdGVkIGJ5IGQtPmV2ZW50X2xvY2sgYW5kIGJ5IGlycV9kZXNjW2lycV0ubG9jayAqLwogICAg IHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgaXJxX3BpcnE7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAppbmRleCAwYzViMzkx Li5kOGM0MGE2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKQEAgLTMzOCw2ICszMzgsMTMgQEAgc3RydWN0IHAybV9k b21haW4gewogICAgIH07CiB9OwogCitzdHJ1Y3QgYWx0cDJtX2RvbWFpbiB7CisgICAgYm9vbF90 IGFsdHAybV9hY3RpdmU7CisgICAgc3RydWN0IHAybV9kb21haW4gKmFsdHAybV9wMm1bTUFYX0FM VFAyTV07CisgICAgbW1fbG9ja190IGFsdHAybV9saXN0X2xvY2s7CisgICAgdWludDY0X3QgKmFs dHAybV9lcHRwOworfTsKKwogLyogZ2V0IGhvc3QgcDJtIHRhYmxlICovCiAjZGVmaW5lIHAybV9n ZXRfaG9zdHAybShkKSAgICAgICgoZCktPmFyY2gucDJtKQogCkBAIC03NzgsNyArNzg1LDcgQEAg c3RhdGljIGlubGluZSBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtX2dldF9hbHRwMm0oc3RydWN0IHZj cHUgKnYpCiAKICAgICBCVUdfT04oaW5kZXggPj0gTUFYX0FMVFAyTSk7CiAKLSAgICByZXR1cm4g di0+ZG9tYWluLT5hcmNoLmFsdHAybV9wMm1baW5kZXhdOworICAgIHJldHVybiB2LT5kb21haW4t PmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2luZGV4XTsKIH0KIAogLyogU3dpdGNoIGFsdGVybmF0 ZSBwMm0gZm9yIGEgc2luZ2xlIHZjcHUgKi8KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==