From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v4 04/21] acpi/hvmloader: Collect processor and NUMA info in hvmloader Date: Mon, 19 Sep 2016 20:19:22 -0400 Message-ID: <1474330779-10645-5-git-send-email-boris.ostrovsky@oracle.com> References: <1474330779-10645-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1474330779-10645-1-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, julien.grall@arm.com, jbeulich@suse.com, zhaoshenglong@huawei.com, Boris Ostrovsky , roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org Tm8gbmVlZCBmb3IgQUNQSSBjb2RlIHRvIHJlbHkgb24gaHZtX2luZm8gdmFyaWFibGUuCgpTaWdu ZWQtb2ZmLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgot LS0KQ2hhbmdlcyBpbiB2NDoKKiBDb25zdGlmaWVkIG1vZGUgdGhpbmdzIChzdHJ1Y3QgYWNwaV9j b25maWcncyBodm1pbmZvLCB0ZXN0X2JpdCdzIGFyZ3VtZW50KQoqIFJlbW92ZWQgeGVuL21lbW9y eS5oIGZyb20gbGliYWNwaS5oCgoKIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2J1aWxk LmMgICB8IDUyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogdG9vbHMvZmlybXdh cmUvaHZtbG9hZGVyL2FjcGkvbGliYWNwaS5oIHwgMTEgKysrKysrKwogdG9vbHMvZmlybXdhcmUv aHZtbG9hZGVyL3V0aWwuYyAgICAgICAgIHwgIDkgKysrKysrCiB0b29scy9maXJtd2FyZS9odm1s b2FkZXIvdXRpbC5oICAgICAgICAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRp b25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1s b2FkZXIvYWNwaS9idWlsZC5jIGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvYnVpbGQu YwppbmRleCBkZTU2ZjFmLi42OGViN2M0IDEwMDY0NAotLS0gYS90b29scy9maXJtd2FyZS9odm1s b2FkZXIvYWNwaS9idWlsZC5jCisrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2J1 aWxkLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICIuLi92bnVtYS5oIgogI2luY2x1ZGUg PHhlbi9odm0vaHZtX3hzX3N0cmluZ3MuaD4KICNpbmNsdWRlIDx4ZW4vaHZtL3BhcmFtcy5oPgor I2luY2x1ZGUgPHhlbi9tZW1vcnkuaD4KIAogI2RlZmluZSBBQ1BJX01BWF9TRUNPTkRBUllfVEFC TEVTIDE2CiAKQEAgLTcwLDE4ICs3MSwyMCBAQCBzdGF0aWMgdm9pZCBzZXRfY2hlY2tzdW0oCiAg ICAgcFtjaGVja3N1bV9vZmZzZXRdID0gLXN1bTsKIH0KIAotc3RhdGljIHN0cnVjdCBhY3BpXzIw X21hZHQgKmNvbnN0cnVjdF9tYWR0KHN0cnVjdCBhY3BpX2luZm8gKmluZm8pCitzdGF0aWMgc3Ry dWN0IGFjcGlfMjBfbWFkdCAqY29uc3RydWN0X21hZHQoY29uc3Qgc3RydWN0IGFjcGlfY29uZmln ICpjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGFjcGlfaW5mbyAqaW5mbykKIHsKICAgICBzdHJ1Y3QgYWNwaV8yMF9tYWR0ICAgICAgICAg ICAqbWFkdDsKICAgICBzdHJ1Y3QgYWNwaV8yMF9tYWR0X2ludHNyY292ciAqaW50c3Jjb3ZyOwog ICAgIHN0cnVjdCBhY3BpXzIwX21hZHRfaW9hcGljICAgICppb19hcGljOwogICAgIHN0cnVjdCBh Y3BpXzIwX21hZHRfbGFwaWMgICAgICpsYXBpYzsKKyAgICBjb25zdCBzdHJ1Y3QgaHZtX2luZm9f dGFibGUgICAqaHZtaW5mbyA9IGNvbmZpZy0+aHZtaW5mbzsKICAgICBpbnQgaSwgc3o7CiAKICAg ICBzeiAgPSBzaXplb2Yoc3RydWN0IGFjcGlfMjBfbWFkdCk7CiAgICAgc3ogKz0gc2l6ZW9mKHN0 cnVjdCBhY3BpXzIwX21hZHRfaW50c3Jjb3ZyKSAqIDE2OwogICAgIHN6ICs9IHNpemVvZihzdHJ1 Y3QgYWNwaV8yMF9tYWR0X2lvYXBpYyk7Ci0gICAgc3ogKz0gc2l6ZW9mKHN0cnVjdCBhY3BpXzIw X21hZHRfbGFwaWMpICogaHZtX2luZm8tPm5yX3ZjcHVzOworICAgIHN6ICs9IHNpemVvZihzdHJ1 Y3QgYWNwaV8yMF9tYWR0X2xhcGljKSAqIGh2bWluZm8tPm5yX3ZjcHVzOwogCiAgICAgbWFkdCA9 IG1lbV9hbGxvYyhzeiwgMTYpOwogICAgIGlmICghbWFkdCkgcmV0dXJuIE5VTEw7CkBAIC0xMzQs OSArMTM3LDkgQEAgc3RhdGljIHN0cnVjdCBhY3BpXzIwX21hZHQgKmNvbnN0cnVjdF9tYWR0KHN0 cnVjdCBhY3BpX2luZm8gKmluZm8pCiAgICAgaW9fYXBpYy0+aW9hcGljX2FkZHIgPSBpb2FwaWNf YmFzZV9hZGRyZXNzOwogCiAgICAgbGFwaWMgPSAoc3RydWN0IGFjcGlfMjBfbWFkdF9sYXBpYyAq KShpb19hcGljICsgMSk7Ci0gICAgaW5mby0+bnJfY3B1cyA9IGh2bV9pbmZvLT5ucl92Y3B1czsK KyAgICBpbmZvLT5ucl9jcHVzID0gaHZtaW5mby0+bnJfdmNwdXM7CiAgICAgaW5mby0+bWFkdF9s YXBpYzBfYWRkciA9ICh1aW50MzJfdClsYXBpYzsKLSAgICBmb3IgKCBpID0gMDsgaSA8IGh2bV9p bmZvLT5ucl92Y3B1czsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgaSA8IGh2bWluZm8tPm5yX3Zj cHVzOyBpKysgKQogICAgIHsKICAgICAgICAgbWVtc2V0KGxhcGljLCAwLCBzaXplb2YoKmxhcGlj KSk7CiAgICAgICAgIGxhcGljLT50eXBlICAgID0gQUNQSV9QUk9DRVNTT1JfTE9DQUxfQVBJQzsK QEAgLTE0NCw3ICsxNDcsNyBAQCBzdGF0aWMgc3RydWN0IGFjcGlfMjBfbWFkdCAqY29uc3RydWN0 X21hZHQoc3RydWN0IGFjcGlfaW5mbyAqaW5mbykKICAgICAgICAgLyogUHJvY2Vzc29yIElEIG11 c3QgbWF0Y2ggcHJvY2Vzc29yLW9iamVjdCBJRHMgaW4gdGhlIERTRFQuICovCiAgICAgICAgIGxh cGljLT5hY3BpX3Byb2Nlc3Nvcl9pZCA9IGk7CiAgICAgICAgIGxhcGljLT5hcGljX2lkID0gTEFQ SUNfSUQoaSk7Ci0gICAgICAgIGxhcGljLT5mbGFncyA9ICh0ZXN0X2JpdChpLCBodm1faW5mby0+ dmNwdV9vbmxpbmUpCisgICAgICAgIGxhcGljLT5mbGFncyA9ICh0ZXN0X2JpdChpLCBodm1pbmZv LT52Y3B1X29ubGluZSkKICAgICAgICAgICAgICAgICAgICAgICAgID8gQUNQSV9MT0NBTF9BUElD X0VOQUJMRUQgOiAwKTsKICAgICAgICAgbGFwaWMrKzsKICAgICB9CkBAIC0xOTUsNyArMTk4LDcg QEAgc3RhdGljIHN0cnVjdCBhY3BpXzIwX3dhZXQgKmNvbnN0cnVjdF93YWV0KHZvaWQpCiAgICAg cmV0dXJuIHdhZXQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYWNwaV8yMF9zcmF0ICpjb25zdHJ1Y3Rf c3JhdCh2b2lkKQorc3RhdGljIHN0cnVjdCBhY3BpXzIwX3NyYXQgKmNvbnN0cnVjdF9zcmF0KGNv bnN0IHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogewogICAgIHN0cnVjdCBhY3BpXzIwX3Ny YXQgKnNyYXQ7CiAgICAgc3RydWN0IGFjcGlfMjBfc3JhdF9wcm9jZXNzb3IgKnByb2Nlc3NvcjsK QEAgLTIwNCw4ICsyMDcsOCBAQCBzdGF0aWMgc3RydWN0IGFjcGlfMjBfc3JhdCAqY29uc3RydWN0 X3NyYXQodm9pZCkKICAgICB2b2lkICpwOwogICAgIHVuc2lnbmVkIGludCBpOwogCi0gICAgc2l6 ZSA9IHNpemVvZigqc3JhdCkgKyBzaXplb2YoKnByb2Nlc3NvcikgKiBodm1faW5mby0+bnJfdmNw dXMgKwotICAgICAgICAgICBzaXplb2YoKm1lbW9yeSkgKiBucl92bWVtcmFuZ2VzOworICAgIHNp emUgPSBzaXplb2YoKnNyYXQpICsgc2l6ZW9mKCpwcm9jZXNzb3IpICogY29uZmlnLT5odm1pbmZv LT5ucl92Y3B1cyArCisgICAgICAgICAgIHNpemVvZigqbWVtb3J5KSAqIGNvbmZpZy0+bnVtYS5u cl92bWVtcmFuZ2VzOwogCiAgICAgcCA9IG1lbV9hbGxvYyhzaXplLCAxNik7CiAgICAgaWYgKCAh cCApCkBAIC0yMjIsMjUgKzIyNSwyNiBAQCBzdGF0aWMgc3RydWN0IGFjcGlfMjBfc3JhdCAqY29u c3RydWN0X3NyYXQodm9pZCkKICAgICBzcmF0LT50YWJsZV9yZXZpc2lvbiAgICAgID0gQUNQSV9T UkFUX1RBQkxFX1JFVklTSU9OOwogCiAgICAgcHJvY2Vzc29yID0gKHN0cnVjdCBhY3BpXzIwX3Ny YXRfcHJvY2Vzc29yICopKHNyYXQgKyAxKTsKLSAgICBmb3IgKCBpID0gMDsgaSA8IGh2bV9pbmZv LT5ucl92Y3B1czsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgaSA8IGNvbmZpZy0+aHZtaW5mby0+ bnJfdmNwdXM7IGkrKyApCiAgICAgewogICAgICAgICBwcm9jZXNzb3ItPnR5cGUgICAgID0gQUNQ SV9QUk9DRVNTT1JfQUZGSU5JVFk7CiAgICAgICAgIHByb2Nlc3Nvci0+bGVuZ3RoICAgPSBzaXpl b2YoKnByb2Nlc3Nvcik7Ci0gICAgICAgIHByb2Nlc3Nvci0+ZG9tYWluICAgPSB2Y3B1X3RvX3Zu b2RlW2ldOworICAgICAgICBwcm9jZXNzb3ItPmRvbWFpbiAgID0gY29uZmlnLT5udW1hLnZjcHVf dG9fdm5vZGVbaV07CiAgICAgICAgIHByb2Nlc3Nvci0+YXBpY19pZCAgPSBMQVBJQ19JRChpKTsK ICAgICAgICAgcHJvY2Vzc29yLT5mbGFncyAgICA9IEFDUElfTE9DQUxfQVBJQ19BRkZJTl9FTkFC TEVEOwogICAgICAgICBwcm9jZXNzb3IrKzsKICAgICB9CiAKICAgICBtZW1vcnkgPSAoc3RydWN0 IGFjcGlfMjBfc3JhdF9tZW1vcnkgKilwcm9jZXNzb3I7Ci0gICAgZm9yICggaSA9IDA7IGkgPCBu cl92bWVtcmFuZ2VzOyBpKysgKQorICAgIGZvciAoIGkgPSAwOyBpIDwgY29uZmlnLT5udW1hLm5y X3ZtZW1yYW5nZXM7IGkrKyApCiAgICAgewogICAgICAgICBtZW1vcnktPnR5cGUgICAgICAgICAg PSBBQ1BJX01FTU9SWV9BRkZJTklUWTsKICAgICAgICAgbWVtb3J5LT5sZW5ndGggICAgICAgID0g c2l6ZW9mKCptZW1vcnkpOwotICAgICAgICBtZW1vcnktPmRvbWFpbiAgICAgICAgPSB2bWVtcmFu Z2VbaV0ubmlkOworICAgICAgICBtZW1vcnktPmRvbWFpbiAgICAgICAgPSBjb25maWctPm51bWEu dm1lbXJhbmdlW2ldLm5pZDsKICAgICAgICAgbWVtb3J5LT5mbGFncyAgICAgICAgID0gQUNQSV9N RU1fQUZGSU5fRU5BQkxFRDsKLSAgICAgICAgbWVtb3J5LT5iYXNlX2FkZHJlc3MgID0gdm1lbXJh bmdlW2ldLnN0YXJ0OwotICAgICAgICBtZW1vcnktPm1lbV9sZW5ndGggICAgPSB2bWVtcmFuZ2Vb aV0uZW5kIC0gdm1lbXJhbmdlW2ldLnN0YXJ0OworICAgICAgICBtZW1vcnktPmJhc2VfYWRkcmVz cyAgPSBjb25maWctPm51bWEudm1lbXJhbmdlW2ldLnN0YXJ0OworICAgICAgICBtZW1vcnktPm1l bV9sZW5ndGggICAgPSBjb25maWctPm51bWEudm1lbXJhbmdlW2ldLmVuZCAtCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+bnVtYS52bWVtcmFuZ2VbaV0uc3RhcnQ7CiAg ICAgICAgIG1lbW9yeSsrOwogICAgIH0KIApAQCAtMjUyLDEyICsyNTYsMTIgQEAgc3RhdGljIHN0 cnVjdCBhY3BpXzIwX3NyYXQgKmNvbnN0cnVjdF9zcmF0KHZvaWQpCiAgICAgcmV0dXJuIHNyYXQ7 CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYWNwaV8yMF9zbGl0ICpjb25zdHJ1Y3Rfc2xpdCh2b2lkKQor c3RhdGljIHN0cnVjdCBhY3BpXzIwX3NsaXQgKmNvbnN0cnVjdF9zbGl0KGNvbnN0IHN0cnVjdCBh Y3BpX2NvbmZpZyAqY29uZmlnKQogewogICAgIHN0cnVjdCBhY3BpXzIwX3NsaXQgKnNsaXQ7CiAg ICAgdW5zaWduZWQgaW50IGksIG51bSwgc2l6ZTsKIAotICAgIG51bSA9IG5yX3Zub2RlcyAqIG5y X3Zub2RlczsKKyAgICBudW0gPSBjb25maWctPm51bWEubnJfdm5vZGVzICogY29uZmlnLT5udW1h Lm5yX3Zub2RlczsKICAgICBzaXplID0gc2l6ZW9mKCpzbGl0KSArIG51bSAqIHNpemVvZih1aW50 OF90KTsKIAogICAgIHNsaXQgPSBtZW1fYWxsb2Moc2l6ZSwgMTYpOwpAQCAtMjc0LDkgKzI3OCw5 IEBAIHN0YXRpYyBzdHJ1Y3QgYWNwaV8yMF9zbGl0ICpjb25zdHJ1Y3Rfc2xpdCh2b2lkKQogICAg IHNsaXQtPmhlYWRlci5jcmVhdG9yX3JldmlzaW9uID0gQUNQSV9DUkVBVE9SX1JFVklTSU9OOwog CiAgICAgZm9yICggaSA9IDA7IGkgPCBudW07IGkrKyApCi0gICAgICAgIHNsaXQtPmVudHJ5W2ld ID0gdmRpc3RhbmNlW2ldOworICAgICAgICBzbGl0LT5lbnRyeVtpXSA9IGNvbmZpZy0+bnVtYS52 ZGlzdGFuY2VbaV07CiAKLSAgICBzbGl0LT5sb2NhbGl0aWVzID0gbnJfdm5vZGVzOworICAgIHNs aXQtPmxvY2FsaXRpZXMgPSBjb25maWctPm51bWEubnJfdm5vZGVzOwogCiAgICAgc2xpdC0+aGVh ZGVyLmxlbmd0aCA9IHNpemU7CiAgICAgc2V0X2NoZWNrc3VtKHNsaXQsIG9mZnNldG9mKHN0cnVj dCBhY3BpX2hlYWRlciwgY2hlY2tzdW0pLCBzaXplKTsKQEAgLTMzNSw5ICszMzksOSBAQCBzdGF0 aWMgaW50IGNvbnN0cnVjdF9zZWNvbmRhcnlfdGFibGVzKHVuc2lnbmVkIGxvbmcgKnRhYmxlX3B0 cnMsCiAgICAgdm9pZCAqbGFzYTsKIAogICAgIC8qIE1BRFQuICovCi0gICAgaWYgKCAoaHZtX2lu Zm8tPm5yX3ZjcHVzID4gMSkgfHwgaHZtX2luZm8tPmFwaWNfbW9kZSApCisgICAgaWYgKCAoY29u ZmlnLT5odm1pbmZvLT5ucl92Y3B1cyA+IDEpIHx8IGNvbmZpZy0+aHZtaW5mby0+YXBpY19tb2Rl ICkKICAgICB7Ci0gICAgICAgIG1hZHQgPSBjb25zdHJ1Y3RfbWFkdChpbmZvKTsKKyAgICAgICAg bWFkdCA9IGNvbnN0cnVjdF9tYWR0KGNvbmZpZywgaW5mbyk7CiAgICAgICAgIGlmICghbWFkdCkg cmV0dXJuIC0xOwogICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNpZ25lZCBs b25nKW1hZHQ7CiAgICAgfQpAQCAtNDE5LDEwICs0MjMsMTAgQEAgc3RhdGljIGludCBjb25zdHJ1 Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAogICAgIH0KIAog ICAgIC8qIFNSQVQgYW5kIFNMSVQgKi8KLSAgICBpZiAoIG5yX3Zub2RlcyA+IDAgKQorICAgIGlm ICggY29uZmlnLT5udW1hLm5yX3Zub2RlcyA+IDAgKQogICAgIHsKLSAgICAgICAgc3RydWN0IGFj cGlfMjBfc3JhdCAqc3JhdCA9IGNvbnN0cnVjdF9zcmF0KCk7Ci0gICAgICAgIHN0cnVjdCBhY3Bp XzIwX3NsaXQgKnNsaXQgPSBjb25zdHJ1Y3Rfc2xpdCgpOworICAgICAgICBzdHJ1Y3QgYWNwaV8y MF9zcmF0ICpzcmF0ID0gY29uc3RydWN0X3NyYXQoY29uZmlnKTsKKyAgICAgICAgc3RydWN0IGFj cGlfMjBfc2xpdCAqc2xpdCA9IGNvbnN0cnVjdF9zbGl0KGNvbmZpZyk7CiAKICAgICAgICAgaWYg KCBzcmF0ICkKICAgICAgICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzKytdID0gKHVuc2lnbmVk IGxvbmcpc3JhdDsKQEAgLTUxNSw3ICs1MTksNyBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0 cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogICAgICAqIFRoZSBsYXR0ZXIgaXMgcmVxdWlyZWQg Zm9yIFdpbmRvd3MgMjAwMCwgd2hpY2ggZXhwZXJpZW5jZXMgYSBCU09EIG9mCiAgICAgICogS01P REVfRVhDRVBUSU9OX05PVF9IQU5ETEVEIGlmIGl0IHNlZXMgbW9yZSB0aGFuIDE1IHByb2Nlc3Nv ciBvYmplY3RzLgogICAgICAqLwotICAgIGlmICggaHZtX2luZm8tPm5yX3ZjcHVzIDw9IDE1ICYm IGNvbmZpZy0+ZHNkdF8xNWNwdSkKKyAgICBpZiAoIGNvbmZpZy0+aHZtaW5mby0+bnJfdmNwdXMg PD0gMTUgJiYgY29uZmlnLT5kc2R0XzE1Y3B1KQogICAgIHsKICAgICAgICAgZHNkdCA9IG1lbV9h bGxvYyhjb25maWctPmRzZHRfMTVjcHVfbGVuLCAxNik7CiAgICAgICAgIGlmICghZHNkdCkgZ290 byBvb207CmRpZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9saWJhY3Bp LmggYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9saWJhY3BpLmgKaW5kZXggMjJmZDVm Ni4uZDFlNzA0MiAxMDA2NDQKLS0tIGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvbGli YWNwaS5oCisrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2xpYmFjcGkuaApAQCAt MjgsNiArMjgsMTQgQEAKICNkZWZpbmUgQUNQSV9IQVNfU1NEVF9TMyAgICAgKDE8PDUpCiAjZGVm aW5lIEFDUElfSEFTX1NTRFRfUzQgICAgICgxPDw2KQogCitzdHJ1Y3QgeGVuX3ZtZW1yYW5nZTsK K3N0cnVjdCBhY3BpX251bWEgeworICAgIHVpbnQzMl90IG5yX3ZtZW1yYW5nZXM7CisgICAgdWlu dDMyX3QgbnJfdm5vZGVzOworICAgIGNvbnN0IHVuc2lnbmVkIGludCAqdmNwdV90b192bm9kZTsK KyAgICBjb25zdCB1bnNpZ25lZCBpbnQgKnZkaXN0YW5jZTsKKyAgICBjb25zdCBzdHJ1Y3QgeGVu X3ZtZW1yYW5nZSAqdm1lbXJhbmdlOworfTsKIAogc3RydWN0IGFjcGlfY29uZmlnIHsKICAgICBj b25zdCB1bnNpZ25lZCBjaGFyICpkc2R0X2FueWNwdTsKQEAgLTQ5LDYgKzU3LDkgQEAgc3RydWN0 IGFjcGlfY29uZmlnIHsKICAgICAgICAgdWludDMyX3QgbGVuZ3RoOwogICAgIH0gcHQ7CiAKKyAg ICBzdHJ1Y3QgYWNwaV9udW1hIG51bWE7CisgICAgY29uc3Qgc3RydWN0IGh2bV9pbmZvX3RhYmxl ICpodm1pbmZvOworCiAgICAgLyoKICAgICAgKiBBZGRyZXNzIHdoZXJlIGFjcGlfaW5mbyBzaG91 bGQgYmUgcGxhY2VkLgogICAgICAqIFRoaXMgbXVzdCBtYXRjaCB0aGUgT3BlcmF0aW9uUmVnaW9u KEJJT1MsIFN5c3RlbU1lbW9yeSwgLi4uLikKZGlmZiAtLWdpdCBhL3Rvb2xzL2Zpcm13YXJlL2h2 bWxvYWRlci91dGlsLmMgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5jCmluZGV4IGIy ZDM0MjEuLmYzN2IxNmUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGls LmMKKysrIGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3V0aWwuYwpAQCAtMjEsNiArMjEsNyBA QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImh5cGVyY2FsbC5oIgogI2luY2x1ZGUg ImN0eXBlLmgiCisjaW5jbHVkZSAidm51bWEuaCIKICNpbmNsdWRlICJhY3BpL2FjcGkyXzAuaCIK ICNpbmNsdWRlICJhY3BpL2xpYmFjcGkuaCIKICNpbmNsdWRlIDxzdGRpbnQuaD4KQEAgLTkxOCw2 ICs5MTksMTQgQEAgdm9pZCBodm1sb2FkZXJfYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlf Y29uZmlnICpjb25maWcsCiAgICAgaWYgKCAhc3RybmNtcCh4ZW5zdG9yZV9yZWFkKCJwbGF0Zm9y bS9hY3BpX3M0IiwgIjEiKSwgIjEiLCAxKSAgKQogICAgICAgICBjb25maWctPnRhYmxlX2ZsYWdz IHw9IEFDUElfSEFTX1NTRFRfUzQ7CiAKKyAgICBjb25maWctPm51bWEubnJfdm1lbXJhbmdlcyA9 IG5yX3ZtZW1yYW5nZXM7CisgICAgY29uZmlnLT5udW1hLm5yX3Zub2RlcyA9IG5yX3Zub2RlczsK KyAgICBjb25maWctPm51bWEudmNwdV90b192bm9kZSA9IHZjcHVfdG9fdm5vZGU7CisgICAgY29u ZmlnLT5udW1hLnZkaXN0YW5jZSA9IHZkaXN0YW5jZTsKKyAgICBjb25maWctPm51bWEudm1lbXJh bmdlID0gdm1lbXJhbmdlOworCisgICAgY29uZmlnLT5odm1pbmZvID0gaHZtX2luZm87CisKICAg ICBjb25maWctPnJzZHAgPSBwaHlzaWNhbDsKICAgICBjb25maWctPmluZm9wID0gQUNQSV9JTkZP X1BIWVNJQ0FMX0FERFJFU1M7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRl ci91dGlsLmggYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5oCmluZGV4IDk0MjkyZDYu LmUzMjM3NzggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmgKKysr IGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3V0aWwuaApAQCAtNDcsNyArNDcsNyBAQCB2b2lk IF9fYnVnKGNoYXIgKmZpbGUsIGludCBsaW5lKSBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpOwog I2RlZmluZSBtYXhfdCh0eXBlLHgseSkgXAogICAgICAgICAoeyB0eXBlIF9feCA9ICh4KTsgdHlw ZSBfX3kgPSAoeSk7IF9feCA+IF9feSA/IF9feDogX195OyB9KQogCi1zdGF0aWMgaW5saW5lIGlu dCB0ZXN0X2JpdCh1bnNpZ25lZCBpbnQgYiwgdm9pZCAqcCkKK3N0YXRpYyBpbmxpbmUgaW50IHRl c3RfYml0KHVuc2lnbmVkIGludCBiLCBjb25zdCB2b2lkICpwKQogewogICAgIHJldHVybiAhISgo KHVpbnQ4X3QgKilwKVtiPj4zXSAmICgxdTw8KGImNykpKTsKIH0KLS0gCjEuOC4zLjEKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK