From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Lai Subject: [PATCH Altp2m cleanup v5 3/3] Making altp2m domain dynamically allocated. Date: Tue, 13 Sep 2016 09:46:05 -0700 Message-ID: <1473785165-11137-4-git-send-email-paul.c.lai@intel.com> References: <1473785165-11137-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: <1473785165-11137-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 UmF2aSBTYWhpdGEncyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgYWx0cDJtIGRvbWFpbi4KSW50cm9k dWNlIHNldF9hbHRwMm1fYWN0aXZlKCkgYW5kIGFsdHAybV9hY3RpdmUoKSBhcGkoKXMuCgpTaWdu ZWQtb2ZmLWJ5OiBSYXZpIFNhaGl0YSA8cmF2aS5zYWhpdGFAaW50ZWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBQYXVsIExhaSA8cGF1bC5jLmxhaUBpbnRlbC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2h2 bS9odm0uYyAgICAgICAgfCAgOCArKystLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAg IHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9hbHRwMm0uYyAgICAgIHwgMTYgKysrKystLS0tLS0K IHhlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9t bS1sb2Nrcy5oICAgIHwgIDQgKy0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jICAgICB8IDEw ICsrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAgICAgIHwgNjMgKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9tb25pdG9yLmMgICAg ICAgICAgfCAgMSArCiB4ZW4vaW5jbHVkZS9hc20teDg2L2FsdHAybS5oICB8ICA3ICsrKystCiB4 ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oICB8ICA2ICsrLS0tCiB4ZW4vaW5jbHVkZS9hc20t eDg2L3AybS5oICAgICB8ICA5ICsrKysrKy0KIDExIGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlv bnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZt LmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDFiZjJkMDEuLmFjNjkyYWIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0u YwpAQCAtNTI1OSw3ICs1MjU5LDcgQEAgc3RhdGljIGludCBkb19hbHRwMm1fb3AoCiAKICAgICBp ZiAoIChhLmNtZCAhPSBIVk1PUF9hbHRwMm1fZ2V0X2RvbWFpbl9zdGF0ZSkgJiYKICAgICAgICAg IChhLmNtZCAhPSBIVk1PUF9hbHRwMm1fc2V0X2RvbWFpbl9zdGF0ZSkgJiYKLSAgICAgICAgICFk LT5hcmNoLmFsdHAybV9hY3RpdmUgKQorICAgICAgICAgIWFsdHAybV9hY3RpdmUoZCkgKQogICAg IHsKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgZ290byBvdXQ7CkBAIC01Mjkz LDExICs1MjkzLDExIEBAIHN0YXRpYyBpbnQgZG9fYWx0cDJtX29wKAogICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgIH0KIAotICAgICAgICBvc3RhdGUgPSBkLT5hcmNoLmFsdHAybV9hY3RpdmU7 Ci0gICAgICAgIGQtPmFyY2guYWx0cDJtX2FjdGl2ZSA9ICEhYS51LmRvbWFpbl9zdGF0ZS5zdGF0 ZTsKKyAgICAgICAgb3N0YXRlID0gYWx0cDJtX2FjdGl2ZShkKTsKKyAgICAgICAgc2V0X2FsdHAy bV9hY3RpdmUoZCwgYS51LmRvbWFpbl9zdGF0ZS5zdGF0ZSk7CiAKICAgICAgICAgLyogSWYgdGhl IGFsdGVybmF0ZSBwMm0gc3RhdGUgaGFzIGNoYW5nZWQsIGhhbmRsZSBhcHByb3ByaWF0ZWx5ICov Ci0gICAgICAgIGlmICggZC0+YXJjaC5hbHRwMm1fYWN0aXZlICE9IG9zdGF0ZSAmJgorICAgICAg ICBpZiAoIGFsdHAybV9hY3RpdmUoZCkgIT0gb3N0YXRlICYmCiAgICAgICAgICAgICAgKG9zdGF0 ZSB8fCAhKHJjID0gcDJtX2luaXRfYWx0cDJtX2J5X2lkKGQsIDApKSkgKQogICAgICAgICB7CiAg ICAgICAgICAgICBmb3JfZWFjaF92Y3B1KCBkLCB2ICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKaW5kZXggYmI3YTMy OS4uNjk5ZTliMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTIwMTgsNyArMjAxOCw3IEBAIHN0YXRpYyB2 b2lkIHZteF92Y3B1X3VwZGF0ZV92bWZ1bmNfdmUoc3RydWN0IHZjcHUgKnYpCiAgICAgewogICAg ICAgICB2LT5hcmNoLmh2bV92bXguc2Vjb25kYXJ5X2V4ZWNfY29udHJvbCB8PSBtYXNrOwogICAg ICAgICBfX3Ztd3JpdGUoVk1fRlVOQ1RJT05fQ09OVFJPTCwgVk1YX1ZNRlVOQ19FUFRQX1NXSVRD SElORyk7Ci0gICAgICAgIF9fdm13cml0ZShFUFRQX0xJU1RfQUREUiwgdmlydF90b19tYWRkcihk LT5hcmNoLmFsdHAybV9lcHRwKSk7CisgICAgICAgIF9fdm13cml0ZShFUFRQX0xJU1RfQUREUiwg dmlydF90b19tYWRkcihkLT5hcmNoLmFsdHAybS0+ZXB0cCkpOwogCiAgICAgICAgIGlmICggY3B1 X2hhc192bXhfdmlydF9leGNlcHRpb25zICkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL2FsdHAybS5jIGIveGVuL2FyY2gveDg2L21tL2FsdHAybS5jCmluZGV4IDYyODAx YWUuLjc5MTdhMWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9hbHRwMm0uYworKysgYi94 ZW4vYXJjaC94ODYvbW0vYWx0cDJtLmMKQEAgLTg3LDIwICs4NywyMCBAQCBhbHRwMm1fZG9tYWlu X2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvKiBJbml0 IGFsdGVybmF0ZSBwMm0gZGF0YS4gKi8KLSAgICBpZiAoIChkLT5hcmNoLmFsdHAybV9lcHRwID0g YWxsb2NfeGVuaGVhcF9wYWdlKCkpID09IE5VTEwgKQorICAgIGlmICggKGQtPmFyY2guYWx0cDJt LT5lcHRwID0gYWxsb2NfeGVuaGVhcF9wYWdlKCkpID09IE5VTEwgKQogICAgICAgICByZXR1cm4g LUVOT01FTTsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgTUFYX0VQVFA7IGkrKyApCi0gICAgICAg IGQtPmFyY2guYWx0cDJtX2VwdHBbaV0gPSBtZm5feChJTlZBTElEX01GTik7CisgICAgICAgIGQt PmFyY2guYWx0cDJtLT5lcHRwW2ldID0gbWZuX3goSU5WQUxJRF9NRk4pOwogCiAgICAgZm9yICgg aSA9IDA7IGkgPCBNQVhfQUxUUDJNOyBpKysgKQogICAgIHsKLSAgICAgICAgcmMgPSBwMm1fYWxs b2NfdGFibGUoZC0+YXJjaC5hbHRwMm1fcDJtW2ldKTsKKyAgICAgICAgcmMgPSBwMm1fYWxsb2Nf dGFibGUoZC0+YXJjaC5hbHRwMm0tPnAybVtpXSk7CiAgICAgICAgIGlmICggcmMgIT0gMCApCiAg ICAgICAgICAgIHJldHVybiByYzsKICAgICB9CiAKLSAgICBkLT5hcmNoLmFsdHAybV9hY3RpdmUg PSAwOworICAgIHNldF9hbHRwMm1fYWN0aXZlKGQsIGZhbHNlKTsKIAogICAgIHJldHVybiByYzsK IH0KQEAgLTExMywxMyArMTEzLDEzIEBAIGFsdHAybV9kb21haW5fdGVhcmRvd24oc3RydWN0IGRv bWFpbiAqZCkKICAgICBpZiAoICFodm1fYWx0cDJtX3N1cHBvcnRlZCgpICkKICAgICAgICAgcmV0 dXJuOwogCi0gICAgZC0+YXJjaC5hbHRwMm1fYWN0aXZlID0gMDsKKyAgICBzZXRfYWx0cDJtX2Fj dGl2ZShkLCBmYWxzZSk7CiAKLSAgICBmcmVlX3hlbmhlYXBfcGFnZShkLT5hcmNoLmFsdHAybV9l cHRwKTsKLSAgICBkLT5hcmNoLmFsdHAybV9lcHRwID0gTlVMTDsKKyAgICBmcmVlX3hlbmhlYXBf cGFnZShkLT5hcmNoLmFsdHAybS0+ZXB0cCk7CisgICAgZC0+YXJjaC5hbHRwMm0tPmVwdHAgPSBO VUxMOwogCiAgICAgZm9yICggaSA9IDA7IGkgPCBNQVhfQUxUUDJNOyBpKysgKQotICAgICAgICBw Mm1fdGVhcmRvd24oZC0+YXJjaC5hbHRwMm1fcDJtW2ldKTsKKyAgICAgICAgcDJtX3RlYXJkb3du KGQtPmFyY2guYWx0cDJtLT5wMm1baV0pOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L21tL21lbV9zaGFyaW5nLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJpbmcuYwppbmRl eCBlN2M2Yjc0Li4zZmQ4MzgwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJp bmcuYworKysgYi94ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJpbmcuYwpAQCAtODc3LDcgKzg3Nyw3 IEBAIGludCBtZW1fc2hhcmluZ19ub21pbmF0ZV9wYWdlKHN0cnVjdCBkb21haW4gKmQsCiAKICAg ICAgICAgZm9yICggaSA9IDA7IGkgPCBNQVhfQUxUUDJNOyBpKysgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBhcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2ldOworICAgICAgICAgICAgYXAybSA9 IGQtPmFyY2guYWx0cDJtLT5wMm1baV07CiAgICAgICAgICAgICBpZiAoICFhcDJtICkKICAgICAg ICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL21tLWxv Y2tzLmggYi94ZW4vYXJjaC94ODYvbW0vbW0tbG9ja3MuaAppbmRleCA3NGZkZmMxLi43MWQzODkx IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vbW0tbG9ja3MuaAorKysgYi94ZW4vYXJjaC94 ODYvbW0vbW0tbG9ja3MuaApAQCAtMjY2LDggKzI2Niw4IEBAIGRlY2xhcmVfbW1fb3JkZXJfY29u c3RyYWludChwZXJfcGFnZV9zaGFyaW5nKQogICovCiAKIGRlY2xhcmVfbW1fbG9jayhhbHRwMm1s aXN0KQotI2RlZmluZSBhbHRwMm1fbGlzdF9sb2NrKGQpICAgbW1fbG9jayhhbHRwMm1saXN0LCAm KGQpLT5hcmNoLmFsdHAybV9saXN0X2xvY2spCi0jZGVmaW5lIGFsdHAybV9saXN0X3VubG9jayhk KSBtbV91bmxvY2soJihkKS0+YXJjaC5hbHRwMm1fbGlzdF9sb2NrKQorI2RlZmluZSBhbHRwMm1f bGlzdF9sb2NrKGQpICAgbW1fbG9jayhhbHRwMm1saXN0LCAmKGQpLT5hcmNoLmFsdHAybS0+bGlz dF9sb2NrKQorI2RlZmluZSBhbHRwMm1fbGlzdF91bmxvY2soZCkgbW1fdW5sb2NrKCYoZCktPmFy Y2guYWx0cDJtLT5saXN0X2xvY2spCiAKIC8qIFAyTSBsb2NrIChwZXItYWx0cDJtLXRhYmxlKQog ICoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYv bW0vcDJtLWVwdC5jCmluZGV4IDA0ODc4ZjUuLjk0NTlkODcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9tbS9wMm0tZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtMTMz MSwxNCArMTMzMSwxNCBAQCB2b2lkIHNldHVwX2VwdF9kdW1wKHZvaWQpCiAKIHZvaWQgcDJtX2lu aXRfYWx0cDJtX2VwdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaSkKIHsKLSAgICBz dHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2ldOworICAgIHN0cnVj dCBwMm1fZG9tYWluICpwMm0gPSBkLT5hcmNoLmFsdHAybS0+cDJtW2ldOwogICAgIHN0cnVjdCBl cHRfZGF0YSAqZXB0OwogCiAgICAgcDJtLT5taW5fcmVtYXBwZWRfZ2ZuID0gZ2ZuX3goSU5WQUxJ RF9HRk4pOwotICAgIHAybS0+bWF4X3JlbWFwcGVkX2dmbiA9IDA7CisgICAgcDJtLT5tYXhfcmVt YXBwZWRfZ2ZuID0gZ2ZuX3goX2dmbigwVUwpKTsKICAgICBlcHQgPSAmcDJtLT5lcHQ7CiAgICAg ZXB0LT5hc3IgPSBwYWdldGFibGVfZ2V0X3BmbihwMm1fZ2V0X3BhZ2V0YWJsZShwMm0pKTsKLSAg ICBkLT5hcmNoLmFsdHAybV9lcHRwW2ldID0gZXB0X2dldF9lcHRwKGVwdCk7CisgICAgZC0+YXJj aC5hbHRwMm0tPmVwdHBbaV0gPSBlcHRfZ2V0X2VwdHAoZXB0KTsKIH0KIAogdW5zaWduZWQgaW50 IHAybV9maW5kX2FsdHAybV9ieV9lcHRwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGVwdHAp CkBAIC0xMzUxLDEwICsxMzUxLDEwIEBAIHVuc2lnbmVkIGludCBwMm1fZmluZF9hbHRwMm1fYnlf ZXB0cChzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBlcHRwKQogCiAgICAgZm9yICggaSA9IDA7 IGkgPCBNQVhfQUxUUDJNOyBpKysgKQogICAgIHsKLSAgICAgICAgaWYgKCBkLT5hcmNoLmFsdHAy bV9lcHRwW2ldID09IG1mbl94KElOVkFMSURfTUZOKSApCisgICAgICAgIGlmICggZC0+YXJjaC5h bHRwMm0tPmVwdHBbaV0gPT0gbWZuX3goSU5WQUxJRF9NRk4pICkKICAgICAgICAgICAgIGNvbnRp bnVlOwogCi0gICAgICAgIHAybSA9IGQtPmFyY2guYWx0cDJtX3AybVtpXTsKKyAgICAgICAgcDJt ID0gZC0+YXJjaC5hbHRwMm0tPnAybVtpXTsKICAgICAgICAgZXB0ID0gJnAybS0+ZXB0OwogCiAg ICAgICAgIGlmICggZXB0cCA9PSBlcHRfZ2V0X2VwdHAoZXB0KSApCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvbW0vcDJtLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKaW5kZXggZmExYWQ0YS4u OTcwYTU2YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9tbS9wMm0uYwpAQCAtMTkxLDE0ICsxOTEsMTcgQEAgc3RhdGljIHZvaWQgcDJtX3RlYXJk b3duX2FsdHAybShzdHJ1Y3QgZG9tYWluICpkKQogICAgIHVuc2lnbmVkIGludCBpOwogICAgIHN0 cnVjdCBwMm1fZG9tYWluICpwMm07CiAKKyAgICBpZiAoIGQtPmFyY2guYWx0cDJtID09IE5VTEwg KQorCXJldHVybjsKKwogICAgIGZvciAoIGkgPSAwOyBpIDwgTUFYX0FMVFAyTTsgaSsrICkKICAg ICB7Ci0gICAgICAgIGlmICggIWQtPmFyY2guYWx0cDJtX3AybVtpXSApCi0gICAgICAgICAgICBj b250aW51ZTsKLSAgICAgICAgcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2ldOworICAgICAgICBw Mm0gPSBkLT5hcmNoLmFsdHAybS0+cDJtW2ldOwogICAgICAgICBwMm1fZnJlZV9vbmUocDJtKTsK LSAgICAgICAgZC0+YXJjaC5hbHRwMm1fcDJtW2ldID0gTlVMTDsKKyAgICAgICAgZC0+YXJjaC5h bHRwMm0tPnAybVtpXSA9IE5VTEw7CiAgICAgfQorCisgICAgeGZyZWUoZC0+YXJjaC5hbHRwMm0p OwogfQogCiBzdGF0aWMgaW50IHAybV9pbml0X2FsdHAybShzdHJ1Y3QgZG9tYWluICpkKQpAQCAt MjA2LDEwICsyMDksMTQgQEAgc3RhdGljIGludCBwMm1faW5pdF9hbHRwMm0oc3RydWN0IGRvbWFp biAqZCkKICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtOwog Ci0gICAgbW1fbG9ja19pbml0KCZkLT5hcmNoLmFsdHAybV9saXN0X2xvY2spOworICAgIGQtPmFy Y2guYWx0cDJtID0geHphbGxvYyhzdHJ1Y3QgYWx0cDJtX2RvbWFpbik7CisgICAgaWYgKCBkLT5h cmNoLmFsdHAybSA9PSBOVUxMICkKKyAgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgbW1f bG9ja19pbml0KCZkLT5hcmNoLmFsdHAybS0+bGlzdF9sb2NrKTsKICAgICBmb3IgKCBpID0gMDsg aSA8IE1BWF9BTFRQMk07IGkrKyApCiAgICAgewotICAgICAgICBkLT5hcmNoLmFsdHAybV9wMm1b aV0gPSBwMm0gPSBwMm1faW5pdF9vbmUoZCk7CisgICAgICAgIGQtPmFyY2guYWx0cDJtLT5wMm1b aV0gPSBwMm0gPSBwMm1faW5pdF9vbmUoZCk7CiAgICAgICAgIGlmICggcDJtID09IE5VTEwgKQog ICAgICAgICB7CiAgICAgICAgICAgICBwMm1fdGVhcmRvd25fYWx0cDJtKGQpOwpAQCAtMTg0NSwx MCArMTg1MiwxMCBAQCBsb25nIHAybV9zZXRfbWVtX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCBn Zm5fdCBnZm4sIHVpbnQzMl90IG5yLAogICAgIGlmICggYWx0cDJtX2lkeCApCiAgICAgewogICAg ICAgICBpZiAoIGFsdHAybV9pZHggPj0gTUFYX0FMVFAyTSB8fAotICAgICAgICAgICAgIGQtPmFy Y2guYWx0cDJtX2VwdHBbYWx0cDJtX2lkeF0gPT0gbWZuX3goSU5WQUxJRF9NRk4pICkKKyAgICAg ICAgICAgICBkLT5hcmNoLmFsdHAybS0+ZXB0cFthbHRwMm1faWR4XSA9PSBtZm5feChJTlZBTElE X01GTikgKQogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICAgICAgYXAybSA9IGQt PmFyY2guYWx0cDJtX3AybVthbHRwMm1faWR4XTsKKyAgICAgICAgYXAybSA9IGQtPmFyY2guYWx0 cDJtLT5wMm1bYWx0cDJtX2lkeF07CiAgICAgfQogCiAgICAgc3dpdGNoICggYWNjZXNzICkKQEAg LTIyODksNyArMjI5Niw3IEBAIGJvb2xfdCBwMm1fc3dpdGNoX3ZjcHVfYWx0cDJtX2J5X2lkKHN0 cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaWR4KQogCiAgICAgYWx0cDJtX2xpc3RfbG9jayhk KTsKIAotICAgIGlmICggZC0+YXJjaC5hbHRwMm1fZXB0cFtpZHhdICE9IG1mbl94KElOVkFMSURf TUZOKSApCisgICAgaWYgKCBkLT5hcmNoLmFsdHAybS0+ZXB0cFtpZHhdICE9IG1mbl94KElOVkFM SURfTUZOKSApCiAgICAgewogICAgICAgICBpZiAoIGlkeCAhPSB2Y3B1X2FsdHAybSh2KS5wMm1p ZHggKQogICAgICAgICB7CkBAIC0yMzc0LDExICsyMzgxLDExIEBAIHZvaWQgcDJtX2ZsdXNoX2Fs dHAybShzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgZm9yICggaSA9IDA7IGkgPCBNQVhfQUxUUDJN OyBpKysgKQogICAgIHsKLSAgICAgICAgcDJtX2ZsdXNoX3RhYmxlKGQtPmFyY2guYWx0cDJtX3Ay bVtpXSk7CisgICAgICAgIHAybV9mbHVzaF90YWJsZShkLT5hcmNoLmFsdHAybS0+cDJtW2ldKTsK ICAgICAgICAgLyogVW5pbml0IGFuZCByZWluaXQgZXB0IHRvIGZvcmNlIFRMQiBzaG9vdGRvd24g Ki8KLSAgICAgICAgZXB0X3AybV91bmluaXQoZC0+YXJjaC5hbHRwMm1fcDJtW2ldKTsKLSAgICAg ICAgZXB0X3AybV9pbml0KGQtPmFyY2guYWx0cDJtX3AybVtpXSk7Ci0gICAgICAgIGQtPmFyY2gu YWx0cDJtX2VwdHBbaV0gPSBtZm5feChJTlZBTElEX01GTik7CisgICAgICAgIGVwdF9wMm1fdW5p bml0KGQtPmFyY2guYWx0cDJtLT5wMm1baV0pOworICAgICAgICBlcHRfcDJtX2luaXQoZC0+YXJj aC5hbHRwMm0tPnAybVtpXSk7CisgICAgICAgIGQtPmFyY2guYWx0cDJtLT5lcHRwW2ldID0gbWZu X3goSU5WQUxJRF9NRk4pOwogICAgIH0KIAogICAgIGFsdHAybV9saXN0X3VubG9jayhkKTsKQEAg LTIzOTMsNyArMjQwMCw3IEBAIGludCBwMm1faW5pdF9hbHRwMm1fYnlfaWQoc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgaW50IGlkeCkKIAogICAgIGFsdHAybV9saXN0X2xvY2soZCk7CiAKLSAg ICBpZiAoIGQtPmFyY2guYWx0cDJtX2VwdHBbaWR4XSA9PSBtZm5feChJTlZBTElEX01GTikgKQor ICAgIGlmICggZC0+YXJjaC5hbHRwMm0tPmVwdHBbaWR4XSA9PSBtZm5feChJTlZBTElEX01GTikg KQogICAgIHsKICAgICAgICAgcDJtX2luaXRfYWx0cDJtX2VwdChkLCBpZHgpOwogICAgICAgICBy YyA9IDA7CkBAIC0yNDEyLDcgKzI0MTksNyBAQCBpbnQgcDJtX2luaXRfbmV4dF9hbHRwMm0oc3Ry dWN0IGRvbWFpbiAqZCwgdWludDE2X3QgKmlkeCkKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgTUFY X0FMVFAyTTsgaSsrICkKICAgICB7Ci0gICAgICAgIGlmICggZC0+YXJjaC5hbHRwMm1fZXB0cFtp XSAhPSBtZm5feChJTlZBTElEX01GTikgKQorICAgICAgICBpZiAoIGQtPmFyY2guYWx0cDJtLT5l cHRwW2ldICE9IG1mbl94KElOVkFMSURfTUZOKSApCiAgICAgICAgICAgICBjb250aW51ZTsKIAog ICAgICAgICBwMm1faW5pdF9hbHRwMm1fZXB0KGQsIGkpOwpAQCAtMjQzOCwxNyArMjQ0NSwxNyBA QCBpbnQgcDJtX2Rlc3Ryb3lfYWx0cDJtX2J5X2lkKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGludCBpZHgpCiAKICAgICBhbHRwMm1fbGlzdF9sb2NrKGQpOwogCi0gICAgaWYgKCBkLT5hcmNo LmFsdHAybV9lcHRwW2lkeF0gIT0gbWZuX3goSU5WQUxJRF9NRk4pICkKKyAgICBpZiAoIGQtPmFy Y2guYWx0cDJtLT5lcHRwW2lkeF0gIT0gbWZuX3goSU5WQUxJRF9NRk4pICkKICAgICB7Ci0gICAg ICAgIHAybSA9IGQtPmFyY2guYWx0cDJtX3AybVtpZHhdOworICAgICAgICBwMm0gPSBkLT5hcmNo LmFsdHAybS0+cDJtW2lkeF07CiAKICAgICAgICAgaWYgKCAhX2F0b21pY19yZWFkKHAybS0+YWN0 aXZlX3ZjcHVzKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHAybV9mbHVzaF90YWJsZShkLT5h cmNoLmFsdHAybV9wMm1baWR4XSk7CisgICAgICAgICAgICBwMm1fZmx1c2hfdGFibGUoZC0+YXJj aC5hbHRwMm0tPnAybVtpZHhdKTsKICAgICAgICAgICAgIC8qIFVuaW5pdCBhbmQgcmVpbml0IGVw dCB0byBmb3JjZSBUTEIgc2hvb3Rkb3duICovCi0gICAgICAgICAgICBlcHRfcDJtX3VuaW5pdChk LT5hcmNoLmFsdHAybV9wMm1baWR4XSk7Ci0gICAgICAgICAgICBlcHRfcDJtX2luaXQoZC0+YXJj aC5hbHRwMm1fcDJtW2lkeF0pOwotICAgICAgICAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFtpZHhd ID0gbWZuX3goSU5WQUxJRF9NRk4pOworICAgICAgICAgICAgZXB0X3AybV91bmluaXQoZC0+YXJj aC5hbHRwMm0tPnAybVtpZHhdKTsKKyAgICAgICAgICAgIGVwdF9wMm1faW5pdChkLT5hcmNoLmFs dHAybS0+cDJtW2lkeF0pOworICAgICAgICAgICAgZC0+YXJjaC5hbHRwMm0tPmVwdHBbaWR4XSA9 IG1mbl94KElOVkFMSURfTUZOKTsKICAgICAgICAgICAgIHJjID0gMDsKICAgICAgICAgfQogICAg IH0KQEAgLTI0NzIsNyArMjQ3OSw3IEBAIGludCBwMm1fc3dpdGNoX2RvbWFpbl9hbHRwMm1fYnlf aWQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlkeCkKIAogICAgIGFsdHAybV9saXN0 X2xvY2soZCk7CiAKLSAgICBpZiAoIGQtPmFyY2guYWx0cDJtX2VwdHBbaWR4XSAhPSBtZm5feChJ TlZBTElEX01GTikgKQorICAgIGlmICggZC0+YXJjaC5hbHRwMm0tPmVwdHBbaWR4XSAhPSBtZm5f eChJTlZBTElEX01GTikgKQogICAgIHsKICAgICAgICAgZm9yX2VhY2hfdmNwdSggZCwgdiApCiAg ICAgICAgICAgICBpZiAoIGlkeCAhPSB2Y3B1X2FsdHAybSh2KS5wMm1pZHggKQpAQCAtMjUwMywx MSArMjUxMCwxMSBAQCBpbnQgcDJtX2NoYW5nZV9hbHRwMm1fZ2ZuKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGludCBpZHgsCiAgICAgdW5zaWduZWQgaW50IHBhZ2Vfb3JkZXI7CiAgICAgaW50 IHJjID0gLUVJTlZBTDsKIAotICAgIGlmICggaWR4ID49IE1BWF9BTFRQMk0gfHwgZC0+YXJjaC5h bHRwMm1fZXB0cFtpZHhdID09IG1mbl94KElOVkFMSURfTUZOKSApCisgICAgaWYgKCBpZHggPj0g TUFYX0FMVFAyTSB8fCBkLT5hcmNoLmFsdHAybS0+ZXB0cFtpZHhdID09IG1mbl94KElOVkFMSURf TUZOKSApCiAgICAgICAgIHJldHVybiByYzsKIAogICAgIGhwMm0gPSBwMm1fZ2V0X2hvc3RwMm0o ZCk7Ci0gICAgYXAybSA9IGQtPmFyY2guYWx0cDJtX3AybVtpZHhdOworICAgIGFwMm0gPSBkLT5h cmNoLmFsdHAybS0+cDJtW2lkeF07CiAKICAgICBwMm1fbG9jayhhcDJtKTsKIApAQCAtMjU5OSwx MCArMjYwNiwxMCBAQCB2b2lkIHAybV9hbHRwMm1fcHJvcGFnYXRlX2NoYW5nZShzdHJ1Y3QgZG9t YWluICpkLCBnZm5fdCBnZm4sCiAKICAgICBmb3IgKCBpID0gMDsgaSA8IE1BWF9BTFRQMk07IGkr KyApCiAgICAgewotICAgICAgICBpZiAoIGQtPmFyY2guYWx0cDJtX2VwdHBbaV0gPT0gbWZuX3go SU5WQUxJRF9NRk4pICkKKyAgICAgICAgaWYgKCBkLT5hcmNoLmFsdHAybS0+ZXB0cFtpXSA9PSBt Zm5feChJTlZBTElEX01GTikgKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgcDJt ID0gZC0+YXJjaC5hbHRwMm1fcDJtW2ldOworICAgICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybS0+ cDJtW2ldOwogICAgICAgICBtID0gZ2V0X2dmbl90eXBlX2FjY2VzcyhwMm0sIGdmbl94KGdmbiks ICZ0LCAmYSwgMCwgTlVMTCk7CiAKICAgICAgICAgLyogQ2hlY2sgZm9yIGEgZHJvcHBlZCBwYWdl IHRoYXQgbWF5IGltcGFjdCB0aGlzIGFsdHAybSAqLwpAQCAtMjYyMywxMCArMjYzMCwxMCBAQCB2 b2lkIHAybV9hbHRwMm1fcHJvcGFnYXRlX2NoYW5nZShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBn Zm4sCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBNQVhfQUxUUDJNOyBpKysgKQog ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCBpID09IGxhc3RfcmVz ZXRfaWR4IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFtp XSA9PSBtZm5feChJTlZBTElEX01GTikgKQorICAgICAgICAgICAgICAgICAgICAgICAgIGQtPmFy Y2guYWx0cDJtLT5lcHRwW2ldID09IG1mbl94KElOVkFMSURfTUZOKSApCiAgICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAgICAgICBwMm0gPSBkLT5hcmNo LmFsdHAybV9wMm1baV07CisgICAgICAgICAgICAgICAgICAgIHAybSA9IGQtPmFyY2guYWx0cDJt LT5wMm1baV07CiAgICAgICAgICAgICAgICAgICAgIHAybV9sb2NrKHAybSk7CiAgICAgICAgICAg ICAgICAgICAgIHAybV9yZXNldF9hbHRwMm0ocDJtKTsKICAgICAgICAgICAgICAgICAgICAgcDJt X3VubG9jayhwMm0pOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tb25pdG9yLmMgYi94ZW4vY29t bW9uL21vbml0b3IuYwppbmRleCBjNzNkMWQ1Li5kNmIzZjkwIDEwMDY0NAotLS0gYS94ZW4vY29t bW9uL21vbml0b3IuYworKysgYi94ZW4vY29tbW9uL21vbml0b3IuYwpAQCAtMjQsNiArMjQsNyBA QAogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUgPHhlbi92bV9ldmVudC5oPgogI2lu Y2x1ZGUgPHhzbS94c20uaD4KKyNpbmNsdWRlIDxhc20vcDJtLmg+CiAjaW5jbHVkZSA8YXNtL2Fs dHAybS5oPgogI2luY2x1ZGUgPGFzbS9tb25pdG9yLmg+CiAjaW5jbHVkZSA8YXNtL3ZtX2V2ZW50 Lmg+CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2FsdHAybS5oIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9hbHRwMm0uaAppbmRleCAwMDkwYzg5Li42NWE3ZWFkIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L2FsdHAybS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0 cDJtLmgKQEAgLTI0LDcgKzI0LDEyIEBACiAvKiBBbHRlcm5hdGUgcDJtIEhWTSBvbi9vZmYgcGVy IGRvbWFpbiAqLwogc3RhdGljIGlubGluZSBib29sX3QgYWx0cDJtX2FjdGl2ZShjb25zdCBzdHJ1 Y3QgZG9tYWluICpkKQogewotICAgIHJldHVybiBkLT5hcmNoLmFsdHAybV9hY3RpdmU7CisgICAg cmV0dXJuIGQtPmFyY2guYWx0cDJtLT5hY3RpdmU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBz ZXRfYWx0cDJtX2FjdGl2ZShjb25zdCBzdHJ1Y3QgZG9tYWluICpkLCBib29sX3QgdikKK3sKKyAg ICBkLT5hcmNoLmFsdHAybS0+YWN0aXZlID0gdjsKIH0KIAogLyogQWx0ZXJuYXRlIHAybSBWQ1BV ICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9kb21haW4uaAppbmRleCA1ODA3YTFmLi4zYjlmY2MxIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9t YWluLmgKQEAgLTI0Miw2ICsyNDIsNyBAQCB0eXBlZGVmIHhlbl9kb21jdGxfY3B1aWRfdCBjcHVp ZF9pbnB1dF90OwogI2RlZmluZSBJTlZBTElEX0FMVFAyTSAgMHhmZmZmCiAjZGVmaW5lIE1BWF9F UFRQICAgICAgICAoUEFHRV9TSVpFIC8gc2l6ZW9mKHVpbnQ2NF90KSkKIHN0cnVjdCBwMm1fZG9t YWluOworc3RydWN0IGFsdHAybV9kb21haW47CiBzdHJ1Y3QgdGltZV9zY2FsZSB7CiAgICAgaW50 IHNoaWZ0OwogICAgIHUzMiBtdWxfZnJhYzsKQEAgLTMyMCwxMCArMzIxLDcgQEAgc3RydWN0IGFy Y2hfZG9tYWluCiAgICAgbW1fbG9ja190IG5lc3RlZF9wMm1fbG9jazsKIAogICAgIC8qIGFsdHAy bTogYWxsb3cgbXVsdGlwbGUgY29waWVzIG9mIGhvc3QgcDJtICovCi0gICAgYm9vbF90IGFsdHAy bV9hY3RpdmU7Ci0gICAgc3RydWN0IHAybV9kb21haW4gKmFsdHAybV9wMm1bTUFYX0FMVFAyTV07 Ci0gICAgbW1fbG9ja190IGFsdHAybV9saXN0X2xvY2s7Ci0gICAgdWludDY0X3QgKmFsdHAybV9l cHRwOworICAgIHN0cnVjdCBhbHRwMm1fZG9tYWluICphbHRwMm07CiAKICAgICAvKiBOQi4gcHJv dGVjdGVkIGJ5IGQtPmV2ZW50X2xvY2sgYW5kIGJ5IGlycV9kZXNjW2lycV0ubG9jayAqLwogICAg IHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgaXJxX3BpcnE7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAppbmRleCAwYzViMzkx Li5jZjMwOTI0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKQEAgLTMzOCw2ICszMzgsMTMgQEAgc3RydWN0IHAybV9k b21haW4gewogICAgIH07CiB9OwogCitzdHJ1Y3QgYWx0cDJtX2RvbWFpbiB7CisgICAgYm9vbF90 IGFjdGl2ZTsKKyAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtW01BWF9BTFRQMk1dOworICAgIG1t X2xvY2tfdCBsaXN0X2xvY2s7CisgICAgdWludDY0X3QgKmVwdHA7Cit9OworCiAvKiBnZXQgaG9z dCBwMm0gdGFibGUgKi8KICNkZWZpbmUgcDJtX2dldF9ob3N0cDJtKGQpICAgICAgKChkKS0+YXJj aC5wMm0pCiAKQEAgLTc3OCw3ICs3ODUsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwMm1fZG9t YWluICpwMm1fZ2V0X2FsdHAybShzdHJ1Y3QgdmNwdSAqdikKIAogICAgIEJVR19PTihpbmRleCA+ PSBNQVhfQUxUUDJNKTsKIAotICAgIHJldHVybiB2LT5kb21haW4tPmFyY2guYWx0cDJtX3AybVtp bmRleF07CisgICAgcmV0dXJuIHYtPmRvbWFpbi0+YXJjaC5hbHRwMm0tPnAybVtpbmRleF07CiB9 CiAKIC8qIFN3aXRjaCBhbHRlcm5hdGUgcDJtIGZvciBhIHNpbmdsZSB2Y3B1ICovCi0tIAoyLjcu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=