From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Lai Subject: [PATCH v1 Altp2m cleanup 3/3] Making altp2m struct dynamically allocated. Date: Tue, 21 Jun 2016 09:04:50 -0700 Message-ID: <1466525090-1692-4-git-send-email-paul.c.lai@intel.com> References: <1466525090-1692-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: <1466525090-1692-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, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org UmF2aSBTYWhpdGEncyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgYWx0cDJtIHN0cnVjdHMKClNpZ25l ZC1vZmYtYnk6IFBhdWwgTGFpIDxwYXVsLmMubGFpQGludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94 ODYvaHZtL2h2bS5jICAgICAgIHwgIDggKysrLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXgu YyAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9hbHRwMm0uYyAgICAgfCAxOCArKysrKysrLS0t LS0tLQogeGVuL2FyY2gveDg2L21tL21tLWxvY2tzLmggICB8ICA0ICstLQogeGVuL2FyY2gveDg2 L21tL3AybS1lcHQuYyAgICB8ICA4ICsrKy0tLQogeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAg ICB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4v aW5jbHVkZS9hc20teDg2L2FsdHAybS5oIHwgIDcgKysrKystCiB4ZW4vaW5jbHVkZS9hc20teDg2 L2RvbWFpbi5oIHwgMTIgKysrKysrKystCiB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgIHwg IDIgKy0KIDkgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMKaW5kZXggMTU5NWIzZS4uNDAyNzBkMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC01MjI4LDcgKzUyMjgsNyBA QCBzdGF0aWMgaW50IGRvX2FsdHAybV9vcCgKIAogICAgIGlmICggKGEuY21kICE9IEhWTU9QX2Fs dHAybV9nZXRfZG9tYWluX3N0YXRlKSAmJgogICAgICAgICAgKGEuY21kICE9IEhWTU9QX2FsdHAy bV9zZXRfZG9tYWluX3N0YXRlKSAmJgotICAgICAgICAgIWQtPmFyY2guYWx0cDJtX2FjdGl2ZSAp CisgICAgICAgICAhIGFsdHAybV9hY3RpdmUoZCkgKQogICAgIHsKICAgICAgICAgcmMgPSAtRU9Q Tk9UU1VQUDsKICAgICAgICAgZ290byBvdXQ7CkBAIC01MjYyLDExICs1MjYyLDExIEBAIHN0YXRp YyBpbnQgZG9fYWx0cDJtX29wKAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAg ICAgICBvc3RhdGUgPSBkLT5hcmNoLmFsdHAybV9hY3RpdmU7Ci0gICAgICAgIGQtPmFyY2guYWx0 cDJtX2FjdGl2ZSA9ICEhYS51LmRvbWFpbl9zdGF0ZS5zdGF0ZTsKKyAgICAgICAgb3N0YXRlID0g YWx0cDJtX2FjdGl2ZShkKTsKKwlzZXRfYWx0cDJtX2FjdGl2ZShkLCAhIWEudS5kb21haW5fc3Rh dGUuc3RhdGUpOwogCiAgICAgICAgIC8qIElmIHRoZSBhbHRlcm5hdGUgcDJtIHN0YXRlIGhhcyBj aGFuZ2VkLCBoYW5kbGUgYXBwcm9wcmlhdGVseSAqLwotICAgICAgICBpZiAoIGQtPmFyY2guYWx0 cDJtX2FjdGl2ZSAhPSBvc3RhdGUgJiYKKyAgICAgICAgaWYgKCBhbHRwMm1fYWN0aXZlKGQpICE9 IG9zdGF0ZSAmJgogICAgICAgICAgICAgIChvc3RhdGUgfHwgIShyYyA9IHAybV9pbml0X2FsdHAy bV9ieV9pZChkLCAwKSkpICkKICAgICAgICAgewogICAgICAgICAgICAgZm9yX2VhY2hfdmNwdSgg ZCwgdiApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNo L3g4Ni9odm0vdm14L3ZteC5jCmluZGV4IDY3MGQ3ZGMuLmI1MjI1NzggMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5j CkBAIC0yMDE3LDcgKzIwMTcsNyBAQCBzdGF0aWMgdm9pZCB2bXhfdmNwdV91cGRhdGVfdm1mdW5j X3ZlKHN0cnVjdCB2Y3B1ICp2KQogICAgIHsKICAgICAgICAgdi0+YXJjaC5odm1fdm14LnNlY29u ZGFyeV9leGVjX2NvbnRyb2wgfD0gbWFzazsKICAgICAgICAgX192bXdyaXRlKFZNX0ZVTkNUSU9O X0NPTlRST0wsIFZNWF9WTUZVTkNfRVBUUF9TV0lUQ0hJTkcpOwotICAgICAgICBfX3Ztd3JpdGUo RVBUUF9MSVNUX0FERFIsIHZpcnRfdG9fbWFkZHIoZC0+YXJjaC5hbHRwMm1fZXB0cCkpOworICAg ICAgICBfX3Ztd3JpdGUoRVBUUF9MSVNUX0FERFIsIHZpcnRfdG9fbWFkZHIoZC0+YXJjaC5hbHRw Mm0tPmFsdHAybV9lcHRwKSk7CiAKICAgICAgICAgaWYgKCBjcHVfaGFzX3ZteF92aXJ0X2V4Y2Vw dGlvbnMgKQogICAgICAgICB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vYWx0cDJtLmMg Yi94ZW4vYXJjaC94ODYvbW0vYWx0cDJtLmMKaW5kZXggMWNhZjZiNC4uNzcxODdjOSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L21tL2FsdHAybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9hbHRw Mm0uYwpAQCAtNzIsMjMgKzcyLDIzIEBAIGh2bV9hbHRwMm1faW5pdCggc3RydWN0IGRvbWFpbiAq ZCkgewogICAgIHVuc2lnbmVkIGludCBpID0gMDsKIAogICAgIC8qIEluaXQgYWx0ZXJuYXRlIHAy bSBkYXRhICovCi0gICAgaWYgKCAoZC0+YXJjaC5hbHRwMm1fZXB0cCA9IGFsbG9jX3hlbmhlYXBf cGFnZSgpKSA9PSBOVUxMICkKKyAgICBpZiAoIChkLT5hcmNoLmFsdHAybS0+YWx0cDJtX2VwdHAg PSBhbGxvY194ZW5oZWFwX3BhZ2UoKSkgPT0gTlVMTCApCiAgICAgewogICAgICAgICBydiA9IC1F Tk9NRU07CiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAogICAgIGZvciAoIGkgPSAwOyBpIDwg TUFYX0VQVFA7IGkrKyApCi0gICAgICAgIGQtPmFyY2guYWx0cDJtX2VwdHBbaV0gPSBJTlZBTElE X01GTjsKKyAgICAgICAgZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwW2ldID0gSU5WQUxJRF9N Rk47CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IE1BWF9BTFRQMk07IGkrKyApCiAgICAgewotICAg ICAgICBydiA9IHAybV9hbGxvY190YWJsZShkLT5hcmNoLmFsdHAybV9wMm1baV0pOworICAgICAg ICBydiA9IHAybV9hbGxvY190YWJsZShkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtpXSk7CiAg ICAgICAgIGlmICggcnYgIT0gMCApCiAgICAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAg IGQtPmFyY2guYWx0cDJtX2FjdGl2ZSA9IDA7CisgICAgc2V0X2FsdHAybV9hY3RpdmUoZCwgMCk7 CiAgb3V0OgogICAgIHJldHVybiBydjsKIH0KQEAgLTk2LDE2ICs5NiwxNiBAQCBodm1fYWx0cDJt X2luaXQoIHN0cnVjdCBkb21haW4gKmQpIHsKIHZvaWQKIGh2bV9hbHRwMm1fdGVhcmRvd24oIHN0 cnVjdCBkb21haW4gKmQpIHsKICAgICB1bnNpZ25lZCBpbnQgaSA9IDA7Ci0gICAgZC0+YXJjaC5h bHRwMm1fYWN0aXZlID0gMDsKKyAgICBzZXRfYWx0cDJtX2FjdGl2ZShkLCAwKTsKIAotICAgIGlm ICggZC0+YXJjaC5hbHRwMm1fZXB0cCApCisgICAgaWYgKCBkLT5hcmNoLmFsdHAybS0+YWx0cDJt X2VwdHAgKQogICAgIHsKLSAgICAgICAgZnJlZV94ZW5oZWFwX3BhZ2UoZC0+YXJjaC5hbHRwMm1f ZXB0cCk7Ci0gICAgICAgIGQtPmFyY2guYWx0cDJtX2VwdHAgPSBOVUxMOworICAgICAgICBmcmVl X3hlbmhlYXBfcGFnZShkLT5hcmNoLmFsdHAybS0+YWx0cDJtX2VwdHApOworICAgICAgICBkLT5h cmNoLmFsdHAybS0+YWx0cDJtX2VwdHAgPSBOVUxMOwogICAgIH0KIAogICAgIGZvciAoIGkgPSAw OyBpIDwgTUFYX0FMVFAyTTsgaSsrICkKLSAgICAgICAgcDJtX3RlYXJkb3duKGQtPmFyY2guYWx0 cDJtX3AybVtpXSk7CisgICAgICAgIHAybV90ZWFyZG93bihkLT5hcmNoLmFsdHAybS0+YWx0cDJt X3AybVtpXSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vbW0tbG9ja3Mu aCBiL3hlbi9hcmNoL3g4Ni9tbS9tbS1sb2Nrcy5oCmluZGV4IDA4NmM4YmIuLjRkMTdiMGEgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9tbS1sb2Nrcy5oCisrKyBiL3hlbi9hcmNoL3g4Ni9t bS9tbS1sb2Nrcy5oCkBAIC0yNTEsOCArMjUxLDggQEAgZGVjbGFyZV9tbV9yd2xvY2socDJtKTsK ICAqLwogCiBkZWNsYXJlX21tX2xvY2soYWx0cDJtbGlzdCkKLSNkZWZpbmUgYWx0cDJtX2xpc3Rf bG9jayhkKSAgIG1tX2xvY2soYWx0cDJtbGlzdCwgJihkKS0+YXJjaC5hbHRwMm1fbGlzdF9sb2Nr KQotI2RlZmluZSBhbHRwMm1fbGlzdF91bmxvY2soZCkgbW1fdW5sb2NrKCYoZCktPmFyY2guYWx0 cDJtX2xpc3RfbG9jaykKKyNkZWZpbmUgYWx0cDJtX2xpc3RfbG9jayhkKSAgIG1tX2xvY2soYWx0 cDJtbGlzdCwgJihkKS0+YXJjaC5hbHRwMm0tPmFsdHAybV9saXN0X2xvY2spCisjZGVmaW5lIGFs dHAybV9saXN0X3VubG9jayhkKSBtbV91bmxvY2soJihkKS0+YXJjaC5hbHRwMm0tPmFsdHAybV9s aXN0X2xvY2spCiAKIC8qIFAyTSBsb2NrIChwZXItYWx0cDJtLXRhYmxlKQogICoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5j CmluZGV4IGRmZjM0YjEuLjc1NGI2NjAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0t ZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtMTMzMCwxNCArMTMzMCwx NCBAQCB2b2lkIHNldHVwX2VwdF9kdW1wKHZvaWQpCiB9CiAKIHZvaWQgcDJtX2luaXRfYWx0cDJt X2hlbHBlciggc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGkpIHsKLSAgICBzdHJ1Y3Qg cDJtX2RvbWFpbiAqcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2ldOworICAgIHN0cnVjdCBwMm1f ZG9tYWluICpwMm0gPSBkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtpXTsKICAgICBzdHJ1Y3Qg ZXB0X2RhdGEgKmVwdDsKIAogICAgIHAybS0+bWluX3JlbWFwcGVkX2dmbiA9IElOVkFMSURfR0ZO OwogICAgIHAybS0+bWF4X3JlbWFwcGVkX2dmbiA9IDA7CiAgICAgZXB0ID0gJnAybS0+ZXB0Owog ICAgIGVwdC0+YXNyID0gcGFnZXRhYmxlX2dldF9wZm4ocDJtX2dldF9wYWdldGFibGUocDJtKSk7 Ci0gICAgZC0+YXJjaC5hbHRwMm1fZXB0cFtpXSA9IGVwdF9nZXRfZXB0cChlcHQpOworICAgIGQt PmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cFtpXSA9IGVwdF9nZXRfZXB0cChlcHQpOwogfQogCiB1 bnNpZ25lZCBpbnQgcDJtX2ZpbmRfYWx0cDJtX2J5X2VwdHAoc3RydWN0IGRvbWFpbiAqZCwgdWlu dDY0X3QgZXB0cCkKQEAgLTEzNTAsMTAgKzEzNTAsMTAgQEAgdW5zaWduZWQgaW50IHAybV9maW5k X2FsdHAybV9ieV9lcHRwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGVwdHApCiAKICAgICBm b3IgKCBpID0gMDsgaSA8IE1BWF9BTFRQMk07IGkrKyApCiAgICAgewotICAgICAgICBpZiAoIGQt PmFyY2guYWx0cDJtX2VwdHBbaV0gPT0gSU5WQUxJRF9NRk4gKQorICAgICAgICBpZiAoIGQtPmFy Y2guYWx0cDJtLT5hbHRwMm1fZXB0cFtpXSA9PSBJTlZBTElEX01GTiApCiAgICAgICAgICAgICBj b250aW51ZTsKIAotICAgICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1baV07CisgICAgICAg IHAybSA9IGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2ldOwogICAgICAgICBlcHQgPSAmcDJt LT5lcHQ7CiAKICAgICAgICAgaWYgKCBlcHRwID09IGVwdF9nZXRfZXB0cChlcHQpICkKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRl eCA5MGYyZDk1Li43MGE4YjE1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysr IGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC0xOTMsMTIgKzE5MywxNSBAQCBzdGF0aWMgdm9p ZCBwMm1fdGVhcmRvd25fYWx0cDJtKHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBmb3IgKCBpID0g MDsgaSA8IE1BWF9BTFRQMk07IGkrKyApCiAgICAgewotICAgICAgICBpZiAoICFkLT5hcmNoLmFs dHAybV9wMm1baV0gKQorICAgICAgICBpZiAoICFkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtp XSApCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgcDJtID0gZC0+YXJjaC5hbHRwMm1f cDJtW2ldOworICAgICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtpXTsKICAg ICAgICAgcDJtX2ZyZWVfb25lKHAybSk7Ci0gICAgICAgIGQtPmFyY2guYWx0cDJtX3AybVtpXSA9 IE5VTEw7CisgICAgICAgIGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2ldID0gTlVMTDsKICAg ICB9CisKKyAgICBpZiAoZC0+YXJjaC5hbHRwMm0pIAorICAgICAgICB4ZnJlZShkLT5hcmNoLmFs dHAybSk7CiB9CiAKIHN0YXRpYyBpbnQgcDJtX2luaXRfYWx0cDJtKHN0cnVjdCBkb21haW4gKmQp CkBAIC0yMDYsMTAgKzIwOSwxMiBAQCBzdGF0aWMgaW50IHAybV9pbml0X2FsdHAybShzdHJ1Y3Qg ZG9tYWluICpkKQogICAgIHVuc2lnbmVkIGludCBpOwogICAgIHN0cnVjdCBwMm1fZG9tYWluICpw Mm07CiAKLSAgICBtbV9sb2NrX2luaXQoJmQtPmFyY2guYWx0cDJtX2xpc3RfbG9jayk7CisgICAg ZC0+YXJjaC5hbHRwMm0gPSB4emFsbG9jKHN0cnVjdCBhbHRwMm1fZG9tYWluKTsKKworICAgIG1t X2xvY2tfaW5pdCgmZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9saXN0X2xvY2spOwogICAgIGZvciAo IGkgPSAwOyBpIDwgTUFYX0FMVFAyTTsgaSsrICkKICAgICB7Ci0gICAgICAgIGQtPmFyY2guYWx0 cDJtX3AybVtpXSA9IHAybSA9IHAybV9pbml0X29uZShkKTsKKyAgICAgICAgZC0+YXJjaC5hbHRw Mm0tPmFsdHAybV9wMm1baV0gPSBwMm0gPSBwMm1faW5pdF9vbmUoZCk7CiAgICAgICAgIGlmICgg cDJtID09IE5VTEwgKQogICAgICAgICB7CiAgICAgICAgICAgICBwMm1fdGVhcmRvd25fYWx0cDJt KGQpOwpAQCAtMTgzOCwxMCArMTg0MywxMCBAQCBsb25nIHAybV9zZXRfbWVtX2FjY2VzcyhzdHJ1 Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIHVpbnQzMl90IG5yLAogICAgIGlmICggYWx0cDJtX2lk eCApCiAgICAgewogICAgICAgICBpZiAoIGFsdHAybV9pZHggPj0gTUFYX0FMVFAyTSB8fAotICAg ICAgICAgICAgIGQtPmFyY2guYWx0cDJtX2VwdHBbYWx0cDJtX2lkeF0gPT0gSU5WQUxJRF9NRk4g KQorICAgICAgICAgICAgIGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cFthbHRwMm1faWR4XSA9 PSBJTlZBTElEX01GTiApCiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgICAgICBh cDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2FsdHAybV9pZHhdOworICAgICAgICBhcDJtID0gZC0+ YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1bYWx0cDJtX2lkeF07CiAgICAgfQogCiAgICAgc3dpdGNo ICggYWNjZXNzICkKQEAgLTIyODAsNyArMjI4NSw3IEBAIGJvb2xfdCBwMm1fc3dpdGNoX3ZjcHVf YWx0cDJtX2J5X2lkKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaWR4KQogCiAgICAgYWx0 cDJtX2xpc3RfbG9jayhkKTsKIAotICAgIGlmICggZC0+YXJjaC5hbHRwMm1fZXB0cFtpZHhdICE9 IElOVkFMSURfTUZOICkKKyAgICBpZiAoIGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cFtpZHhd ICE9IElOVkFMSURfTUZOICkKICAgICB7CiAgICAgICAgIGlmICggaWR4ICE9IHZjcHVfYWx0cDJt KHYpLnAybWlkeCApCiAgICAgICAgIHsKQEAgLTIzNjUsMTEgKzIzNzAsMTEgQEAgdm9pZCBwMm1f Zmx1c2hfYWx0cDJtKHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBmb3IgKCBpID0gMDsgaSA8IE1B WF9BTFRQMk07IGkrKyApCiAgICAgewotICAgICAgICBwMm1fZmx1c2hfdGFibGUoZC0+YXJjaC5h bHRwMm1fcDJtW2ldKTsKKyAgICAgICAgcDJtX2ZsdXNoX3RhYmxlKGQtPmFyY2guYWx0cDJtLT5h bHRwMm1fcDJtW2ldKTsKICAgICAgICAgLyogVW5pbml0IGFuZCByZWluaXQgZXB0IHRvIGZvcmNl IFRMQiBzaG9vdGRvd24gKi8KLSAgICAgICAgZXB0X3AybV91bmluaXQoZC0+YXJjaC5hbHRwMm1f cDJtW2ldKTsKLSAgICAgICAgZXB0X3AybV9pbml0KGQtPmFyY2guYWx0cDJtX3AybVtpXSk7Ci0g ICAgICAgIGQtPmFyY2guYWx0cDJtX2VwdHBbaV0gPSBJTlZBTElEX01GTjsKKyAgICAgICAgZXB0 X3AybV91bmluaXQoZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baV0pOworICAgICAgICBlcHRf cDJtX2luaXQoZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baV0pOworICAgICAgICBkLT5hcmNo LmFsdHAybS0+YWx0cDJtX2VwdHBbaV0gPSBJTlZBTElEX01GTjsKICAgICB9CiAKICAgICBhbHRw Mm1fbGlzdF91bmxvY2soZCk7CkBAIC0yMzg0LDcgKzIzODksNyBAQCBpbnQgcDJtX2luaXRfYWx0 cDJtX2J5X2lkKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpZHgpCiAKICAgICBhbHRw Mm1fbGlzdF9sb2NrKGQpOwogCi0gICAgaWYgKCBkLT5hcmNoLmFsdHAybV9lcHRwW2lkeF0gPT0g SU5WQUxJRF9NRk4gKQorICAgIGlmICggZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwW2lkeF0g PT0gSU5WQUxJRF9NRk4gKQogICAgIHsKICAgICAgICAgcDJtX2luaXRfYWx0cDJtX2hlbHBlcihk LCBpZHgpOwogICAgICAgICByYyA9IDA7CkBAIC0yNDAzLDcgKzI0MDgsNyBAQCBpbnQgcDJtX2lu aXRfbmV4dF9hbHRwMm0oc3RydWN0IGRvbWFpbiAqZCwgdWludDE2X3QgKmlkeCkKIAogICAgIGZv ciAoIGkgPSAwOyBpIDwgTUFYX0FMVFAyTTsgaSsrICkKICAgICB7Ci0gICAgICAgIGlmICggZC0+ YXJjaC5hbHRwMm1fZXB0cFtpXSAhPSBJTlZBTElEX01GTiApCisgICAgICAgIGlmICggZC0+YXJj aC5hbHRwMm0tPmFsdHAybV9lcHRwW2ldICE9IElOVkFMSURfTUZOICkKICAgICAgICAgICAgIGNv bnRpbnVlOwogCiAgICAgICAgIHAybV9pbml0X2FsdHAybV9oZWxwZXIoZCwgaSk7CkBAIC0yNDI5 LDE3ICsyNDM0LDE3IEBAIGludCBwMm1fZGVzdHJveV9hbHRwMm1fYnlfaWQoc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgaW50IGlkeCkKIAogICAgIGFsdHAybV9saXN0X2xvY2soZCk7CiAKLSAg ICBpZiAoIGQtPmFyY2guYWx0cDJtX2VwdHBbaWR4XSAhPSBJTlZBTElEX01GTiApCisgICAgaWYg KCBkLT5hcmNoLmFsdHAybS0+YWx0cDJtX2VwdHBbaWR4XSAhPSBJTlZBTElEX01GTiApCiAgICAg ewotICAgICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1baWR4XTsKKyAgICAgICAgcDJtID0g ZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baWR4XTsKIAogICAgICAgICBpZiAoICFfYXRvbWlj X3JlYWQocDJtLT5hY3RpdmVfdmNwdXMpICkKICAgICAgICAgewotICAgICAgICAgICAgcDJtX2Zs dXNoX3RhYmxlKGQtPmFyY2guYWx0cDJtX3AybVtpZHhdKTsKKyAgICAgICAgICAgIHAybV9mbHVz aF90YWJsZShkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtpZHhdKTsKICAgICAgICAgICAgIC8q IFVuaW5pdCBhbmQgcmVpbml0IGVwdCB0byBmb3JjZSBUTEIgc2hvb3Rkb3duICovCi0gICAgICAg ICAgICBlcHRfcDJtX3VuaW5pdChkLT5hcmNoLmFsdHAybV9wMm1baWR4XSk7Ci0gICAgICAgICAg ICBlcHRfcDJtX2luaXQoZC0+YXJjaC5hbHRwMm1fcDJtW2lkeF0pOwotICAgICAgICAgICAgZC0+ YXJjaC5hbHRwMm1fZXB0cFtpZHhdID0gSU5WQUxJRF9NRk47CisgICAgICAgICAgICBlcHRfcDJt X3VuaW5pdChkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtpZHhdKTsKKyAgICAgICAgICAgIGVw dF9wMm1faW5pdChkLT5hcmNoLmFsdHAybS0+YWx0cDJtX3AybVtpZHhdKTsKKyAgICAgICAgICAg IGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cFtpZHhdID0gSU5WQUxJRF9NRk47CiAgICAgICAg ICAgICByYyA9IDA7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDYzLDcgKzI0NjgsNyBAQCBpbnQg cDJtX3N3aXRjaF9kb21haW5fYWx0cDJtX2J5X2lkKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGludCBpZHgpCiAKICAgICBhbHRwMm1fbGlzdF9sb2NrKGQpOwogCi0gICAgaWYgKCBkLT5hcmNo LmFsdHAybV9lcHRwW2lkeF0gIT0gSU5WQUxJRF9NRk4gKQorICAgIGlmICggZC0+YXJjaC5hbHRw Mm0tPmFsdHAybV9lcHRwW2lkeF0gIT0gSU5WQUxJRF9NRk4gKQogICAgIHsKICAgICAgICAgZm9y X2VhY2hfdmNwdSggZCwgdiApCiAgICAgICAgICAgICBpZiAoIGlkeCAhPSB2Y3B1X2FsdHAybSh2 KS5wMm1pZHggKQpAQCAtMjQ5NCwxMSArMjQ5OSwxMSBAQCBpbnQgcDJtX2NoYW5nZV9hbHRwMm1f Z2ZuKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpZHgsCiAgICAgdW5zaWduZWQgaW50 IHBhZ2Vfb3JkZXI7CiAgICAgaW50IHJjID0gLUVJTlZBTDsKIAotICAgIGlmICggaWR4ID49IE1B WF9BTFRQMk0gfHwgZC0+YXJjaC5hbHRwMm1fZXB0cFtpZHhdID09IElOVkFMSURfTUZOICkKKyAg ICBpZiAoIGlkeCA+PSBNQVhfQUxUUDJNIHx8IGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fZXB0cFtp ZHhdID09IElOVkFMSURfTUZOICkKICAgICAgICAgcmV0dXJuIHJjOwogCiAgICAgaHAybSA9IHAy bV9nZXRfaG9zdHAybShkKTsKLSAgICBhcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2lkeF07Cisg ICAgYXAybSA9IGQtPmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2lkeF07CiAKICAgICBwMm1fbG9j ayhhcDJtKTsKIApAQCAtMjU4OSwxMCArMjU5NCwxMCBAQCB2b2lkIHAybV9hbHRwMm1fcHJvcGFn YXRlX2NoYW5nZShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sCiAKICAgICBmb3IgKCBpID0g MDsgaSA8IE1BWF9BTFRQMk07IGkrKyApCiAgICAgewotICAgICAgICBpZiAoIGQtPmFyY2guYWx0 cDJtX2VwdHBbaV0gPT0gSU5WQUxJRF9NRk4gKQorICAgICAgICBpZiAoIGQtPmFyY2guYWx0cDJt LT5hbHRwMm1fZXB0cFtpXSA9PSBJTlZBTElEX01GTiApCiAgICAgICAgICAgICBjb250aW51ZTsK IAotICAgICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1baV07CisgICAgICAgIHAybSA9IGQt PmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2ldOwogICAgICAgICBtID0gZ2V0X2dmbl90eXBlX2Fj Y2VzcyhwMm0sIGdmbl94KGdmbiksICZ0LCAmYSwgMCwgTlVMTCk7CiAKICAgICAgICAgLyogQ2hl Y2sgZm9yIGEgZHJvcHBlZCBwYWdlIHRoYXQgbWF5IGltcGFjdCB0aGlzIGFsdHAybSAqLwpAQCAt MjYxMywxMCArMjYxOCwxMCBAQCB2b2lkIHAybV9hbHRwMm1fcHJvcGFnYXRlX2NoYW5nZShzdHJ1 Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkg PCBNQVhfQUxUUDJNOyBpKysgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgaWYgKCBpID09IGxhc3RfcmVzZXRfaWR4IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ZC0+YXJjaC5hbHRwMm1fZXB0cFtpXSA9PSBJTlZBTElEX01GTiApCisgICAgICAgICAgICAgICAg ICAgICAgICAgZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9lcHRwW2ldID09IElOVkFMSURfTUZOICkK ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICAgICAgICAg IHAybSA9IGQtPmFyY2guYWx0cDJtX3AybVtpXTsKKyAgICAgICAgICAgICAgICAgICAgcDJtID0g ZC0+YXJjaC5hbHRwMm0tPmFsdHAybV9wMm1baV07CiAgICAgICAgICAgICAgICAgICAgIHAybV9s b2NrKHAybSk7CiAgICAgICAgICAgICAgICAgICAgIHAybV9yZXNldF9hbHRwMm0ocDJtKTsKICAg ICAgICAgICAgICAgICAgICAgcDJtX3VubG9jayhwMm0pOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9hbHRwMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0cDJtLmgKaW5kZXgg N2NlMDQ3ZC4uZWNhMGVjNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRwMm0u aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdHAybS5oCkBAIC0yNCw3ICsyNCwxMiBAQAog LyogQWx0ZXJuYXRlIHAybSBIVk0gb24vb2ZmIHBlciBkb21haW4gKi8KIHN0YXRpYyBpbmxpbmUg Ym9vbF90IGFsdHAybV9hY3RpdmUoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICByZXR1 cm4gZC0+YXJjaC5hbHRwMm1fYWN0aXZlOworICAgIHJldHVybiBkLT5hcmNoLmFsdHAybS0+YWx0 cDJtX2FjdGl2ZTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNldF9hbHRwMm1fYWN0aXZlKGNv bnN0IHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCB2KQoreworICAgIGQtPmFyY2guYWx0cDJtLT5h bHRwMm1fYWN0aXZlID0gdjsKIH0KIAogLyogQWx0ZXJuYXRlIHAybSBWQ1BVICovCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9k b21haW4uaAppbmRleCA3ODNmYTRmLi42MTRkZDQwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKQEAgLTI3 NCw2ICsyNzQsMTMgQEAgc3RydWN0IG1vbml0b3Jfd3JpdGVfZGF0YSB7CiAgICAgdWludDY0X3Qg Y3I0OwogfTsKIAorc3RydWN0IGFsdHAybV9kb21haW4geworICAgIGJvb2xfdCBhbHRwMm1fYWN0 aXZlOworICAgIHN0cnVjdCBwMm1fZG9tYWluICphbHRwMm1fcDJtW01BWF9BTFRQMk1dOworICAg IG1tX2xvY2tfdCBhbHRwMm1fbGlzdF9sb2NrOworICAgIHVpbnQ2NF90ICphbHRwMm1fZXB0cDsK K307CisKIHN0cnVjdCBhcmNoX2RvbWFpbgogewogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBlcmRv bWFpbl9sM19wZzsKQEAgLTMyMCwxMCArMzI3LDEzIEBAIHN0cnVjdCBhcmNoX2RvbWFpbgogICAg IG1tX2xvY2tfdCBuZXN0ZWRfcDJtX2xvY2s7CiAKICAgICAvKiBhbHRwMm06IGFsbG93IG11bHRp cGxlIGNvcGllcyBvZiBob3N0IHAybSAqLworICAgIC8qCiAgICAgYm9vbF90IGFsdHAybV9hY3Rp dmU7CiAgICAgc3RydWN0IHAybV9kb21haW4gKmFsdHAybV9wMm1bTUFYX0FMVFAyTV07CiAgICAg bW1fbG9ja190IGFsdHAybV9saXN0X2xvY2s7Ci0gICAgdWludDY0X3QgKmFsdHAybV9lcHRwOwor ICAgIHVpbnQ2NF90ICphbHRwMm1fZXB0cDsgCisgICAgKi8KKyAgICBzdHJ1Y3QgYWx0cDJtX2Rv bWFpbiAqYWx0cDJtOwogCiAgICAgLyogTkIuIHByb3RlY3RlZCBieSBkLT5ldmVudF9sb2NrIGFu ZCBieSBpcnFfZGVzY1tpcnFdLmxvY2sgKi8KICAgICBzdHJ1Y3QgcmFkaXhfdHJlZV9yb290IGly cV9waXJxOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCBiL3hlbi9pbmNs dWRlL2FzbS14ODYvcDJtLmgKaW5kZXggZDdjOGMxMi4uMzE4NWVjNyAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCkBA IC03NzYsNyArNzc2LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtX2dl dF9hbHRwMm0oc3RydWN0IHZjcHUgKnYpCiAKICAgICBCVUdfT04oaW5kZXggPj0gTUFYX0FMVFAy TSk7CiAKLSAgICByZXR1cm4gdi0+ZG9tYWluLT5hcmNoLmFsdHAybV9wMm1baW5kZXhdOworICAg IHJldHVybiB2LT5kb21haW4tPmFyY2guYWx0cDJtLT5hbHRwMm1fcDJtW2luZGV4XTsKIH0KIAog LyogU3dpdGNoIGFsdGVybmF0ZSBwMm0gZm9yIGEgc2luZ2xlIHZjcHUgKi8KLS0gCjEuOS4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK