From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v1 11/20] acpi/hvmloader: Translate all addresses when assigning addresses in ACPI tables Date: Tue, 5 Jul 2016 15:05:10 -0400 Message-ID: <1467745519-9868-12-git-send-email-boris.ostrovsky@oracle.com> References: <1467745519-9868-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: <1467745519-9868-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@oracle.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org Tm9uLWh2bWxvYWRlciB1c2VycyBtYXkgYmUgYnVpbGRpbmcgdGFibGVzIGluIHZpcnR1YWwgYWRk cmVzcyBzcGFjZQphbmQgdGhlcmVmb3JlIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdmFsdWVz IHRoYXQgZW5kIHVwIGluIHRhYmxlcwphcmUgcGh5c2ljYWwgYWRkcmVzc2VzLgoKU2lnbmVkLW9m Zi1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tCiB0 b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9idWlsZC5jIHwgICA0NyArKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwg MjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2Fj cGkvYnVpbGQuYyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2J1aWxkLmMKaW5kZXgg MGFkYjNkNi4uNGIwMzAyYyAxMDA2NDQKLS0tIGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2Fj cGkvYnVpbGQuYworKysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9idWlsZC5jCkBA IC0xMjYsNyArMTI2LDcgQEAgc3RhdGljIHN0cnVjdCBhY3BpXzIwX21hZHQgKmNvbnN0cnVjdF9t YWR0KHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCiAgICAgICAgIGxhcGljID0gKHN0cnVjdCBhY3Bp XzIwX21hZHRfbGFwaWMgKikobWFkdCArIDEpOwogCiAgICAgY29uZmlnLT5haW5mby5ucl9jcHVz ID1jb25maWctPiBodm1pbmZvLT5ucl92Y3B1czsKLSAgICBjb25maWctPmFpbmZvLm1hZHRfbGFw aWMwX2FkZHIgPSAodWludDMyX3QpbGFwaWM7CisgICAgY29uZmlnLT5haW5mby5tYWR0X2xhcGlj MF9hZGRyID0gY3R4dC0+bWVtX29wcy52MnAoY3R4dCwgbGFwaWMpOwogICAgIGZvciAoIGkgPSAw OyBpIDwgY29uZmlnLT5odm1pbmZvLT5ucl92Y3B1czsgaSsrICkKICAgICB7CiAgICAgICAgIG1l bXNldChsYXBpYywgMCwgc2l6ZW9mKCpsYXBpYykpOwpAQCAtMTQzLDcgKzE0Myw4IEBAIHN0YXRp YyBzdHJ1Y3QgYWNwaV8yMF9tYWR0ICpjb25zdHJ1Y3RfbWFkdChzdHJ1Y3QgYWNwaV9jdHh0ICpj dHh0LAogICAgIG1hZHQtPmhlYWRlci5sZW5ndGggPSAodW5zaWduZWQgY2hhciAqKWxhcGljIC0g KHVuc2lnbmVkIGNoYXIgKiltYWR0OwogICAgIHNldF9jaGVja3N1bShtYWR0LCBvZmZzZXRvZihz dHJ1Y3QgYWNwaV9oZWFkZXIsIGNoZWNrc3VtKSwKICAgICAgICAgICAgICAgICAgbWFkdC0+aGVh ZGVyLmxlbmd0aCk7Ci0gICAgY29uZmlnLT5haW5mby5tYWR0X2NzdW1fYWRkciA9ICh1aW50MzJf dCkmbWFkdC0+aGVhZGVyLmNoZWNrc3VtOworICAgIGNvbmZpZy0+YWluZm8ubWFkdF9jc3VtX2Fk ZHIgPQorICAgICAgICBjdHh0LT5tZW1fb3BzLnYycChjdHh0LCAmbWFkdC0+aGVhZGVyLmNoZWNr c3VtKTsKIAogICAgIHJldHVybiBtYWR0OwogfQpAQCAtMzExLDcgKzMxMiw3IEBAIHN0YXRpYyBp bnQgY29uc3RydWN0X3Bhc3N0aHJvdWdoX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAog ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIG1lbWNweShidWZmZXIsIGhlYWRlciwgaGVhZGVy LT5sZW5ndGgpOwogCi0gICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzKytdID0gKHVuc2lnbmVk IGxvbmcpYnVmZmVyOworICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9IGN0eHQtPm1l bV9vcHMudjJwKGN0eHQsIGJ1ZmZlcik7CiAgICAgICAgIHRvdGFsICs9IGhlYWRlci0+bGVuZ3Ro OwogICAgICAgICBhY3BpX3B0X2FkZHIgKz0gaGVhZGVyLT5sZW5ndGg7CiAgICAgfQpAQCAtMzM3 LDcgKzMzOCw3IEBAIHN0YXRpYyBpbnQgY29uc3RydWN0X3NlY29uZGFyeV90YWJsZXMoc3RydWN0 IGFjcGlfY3R4dCAqY3R4dCwKICAgICB7CiAgICAgICAgIG1hZHQgPSBjb25zdHJ1Y3RfbWFkdChj dHh0LCBjb25maWcpOwogICAgICAgICBpZiAoIW1hZHQpIHJldHVybiAtMTsKLSAgICAgICAgdGFi bGVfcHRyc1tucl90YWJsZXMrK10gPSAodW5zaWduZWQgbG9uZyltYWR0OworICAgICAgICB0YWJs ZV9wdHJzW25yX3RhYmxlcysrXSA9IGN0eHQtPm1lbV9vcHMudjJwKGN0eHQsIG1hZHQpOwogICAg IH0KIAogICAgIC8qIEhQRVQuICovCkBAIC0zNDUsNyArMzQ2LDcgQEAgc3RhdGljIGludCBjb25z dHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAogICAgIHsKICAg ICAgICAgaHBldCA9IGNvbnN0cnVjdF9ocGV0KGN0eHQsIGNvbmZpZyk7CiAgICAgICAgIGlmICgh aHBldCkgcmV0dXJuIC0xOwotICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNp Z25lZCBsb25nKWhwZXQ7CisgICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzKytdID0gY3R4dC0+ bWVtX29wcy52MnAoY3R4dCwgaHBldCk7CiAgICAgfQogCiAgICAgLyogV0FFVC4gKi8KQEAgLTM1 Myw3ICszNTQsNyBAQCBzdGF0aWMgaW50IGNvbnN0cnVjdF9zZWNvbmRhcnlfdGFibGVzKHN0cnVj dCBhY3BpX2N0eHQgKmN0eHQsCiAgICAgewogICAgICAgICB3YWV0ID0gY29uc3RydWN0X3dhZXQo Y3R4dCwgY29uZmlnKTsKICAgICAgICAgaWYgKCAhd2FldCApIHJldHVybiAtMTsKLSAgICAgICAg dGFibGVfcHRyc1tucl90YWJsZXMrK10gPSAodW5zaWduZWQgbG9uZyl3YWV0OworICAgICAgICB0 YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9IGN0eHQtPm1lbV9vcHMudjJwKGN0eHQsIHdhZXQpOwog ICAgIH0KIAogICAgIGlmICggY29uZmlnLT50YWJsZV9mbGFncyAmIEFDUElfQlVJTERfU1NEVF9Q TSApCkBAIC0zNjEsNyArMzYyLDcgQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfc2Vjb25kYXJ5X3Rh YmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAogICAgICAgICBzc2R0ID0gY3R4dC0+bWVtX29w cy5hbGxvYyhjdHh0LCBzaXplb2Yoc3NkdF9wbSksIDE2KTsKICAgICAgICAgaWYgKCFzc2R0KSBy ZXR1cm4gLTE7CiAgICAgICAgIG1lbWNweShzc2R0LCBzc2R0X3BtLCBzaXplb2Yoc3NkdF9wbSkp OwotICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNpZ25lZCBsb25nKXNzZHQ7 CisgICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzKytdID0gY3R4dC0+bWVtX29wcy52MnAoY3R4 dCwgc3NkdCk7CiAgICAgfQogCiAgICAgaWYgKCBjb25maWctPnRhYmxlX2ZsYWdzICYgQUNQSV9C VUlMRF9TU0RUX1MzICkKQEAgLTM2OSw3ICszNzAsNyBAQCBzdGF0aWMgaW50IGNvbnN0cnVjdF9z ZWNvbmRhcnlfdGFibGVzKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCiAgICAgICAgIHNzZHQgPSBj dHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVvZihzc2R0X3MzKSwgMTYpOwogICAgICAgICBp ZiAoIXNzZHQpIHJldHVybiAtMTsKICAgICAgICAgbWVtY3B5KHNzZHQsIHNzZHRfczMsIHNpemVv Zihzc2R0X3MzKSk7Ci0gICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzKytdID0gKHVuc2lnbmVk IGxvbmcpc3NkdDsKKyAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSBjdHh0LT5tZW1f b3BzLnYycChjdHh0LCBzc2R0KTsKICAgICB9IGVsc2UgewogICAgICAgICBwcmludGYoIlMzIGRp c2FibGVkXG4iKTsKICAgICB9CkBAIC0zNzksNyArMzgwLDcgQEAgc3RhdGljIGludCBjb25zdHJ1 Y3Rfc2Vjb25kYXJ5X3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAogICAgICAgICBzc2R0 ID0gY3R4dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBzaXplb2Yoc3NkdF9zNCksIDE2KTsKICAgICAg ICAgaWYgKCFzc2R0KSByZXR1cm4gLTE7CiAgICAgICAgIG1lbWNweShzc2R0LCBzc2R0X3M0LCBz aXplb2Yoc3NkdF9zNCkpOwotICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNp Z25lZCBsb25nKXNzZHQ7CisgICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzKytdID0gY3R4dC0+ bWVtX29wcy52MnAoY3R4dCwgc3NkdCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHJpbnRmKCJT NCBkaXNhYmxlZFxuIik7CiAgICAgfQpAQCAtMzkzLDEyICszOTQsMTIgQEAgc3RhdGljIGludCBj b25zdHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAogICAgICAg ICBzc2R0ID0gY3R4dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBzaXplb2Yoc3NkdF90cG0pLCAxNik7 CiAgICAgICAgIGlmICghc3NkdCkgcmV0dXJuIC0xOwogICAgICAgICBtZW1jcHkoc3NkdCwgc3Nk dF90cG0sIHNpemVvZihzc2R0X3RwbSkpOwotICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysr XSA9ICh1bnNpZ25lZCBsb25nKXNzZHQ7CisgICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzKytd ID0gY3R4dC0+bWVtX29wcy52MnAoY3R4dCwgc3NkdCk7CiAKICAgICAgICAgdGNwYSA9IGN0eHQt Pm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX3RjcGEpLCAxNik7CiAg ICAgICAgIGlmICghdGNwYSkgcmV0dXJuIC0xOwogICAgICAgICBtZW1zZXQodGNwYSwgMCwgc2l6 ZW9mKCp0Y3BhKSk7Ci0gICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzKytdID0gKHVuc2lnbmVk IGxvbmcpdGNwYTsKKyAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSBjdHh0LT5tZW1f b3BzLnYycChjdHh0LCB0Y3BhKTsKIAogICAgICAgICB0Y3BhLT5oZWFkZXIuc2lnbmF0dXJlID0g QUNQSV8yXzBfVENQQV9TSUdOQVRVUkU7CiAgICAgICAgIHRjcGEtPmhlYWRlci5sZW5ndGggICAg PSBzaXplb2YoKnRjcGEpOwpAQCAtNDI2LDExICs0MjcsMTEgQEAgc3RhdGljIGludCBjb25zdHJ1 Y3Rfc2Vjb25kYXJ5X3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAogICAgICAgICBzdHJ1 Y3QgYWNwaV8yMF9zbGl0ICpzbGl0ID0gY29uc3RydWN0X3NsaXQoY3R4dCwgY29uZmlnKTsKIAog ICAgICAgICBpZiAoIHNyYXQgKQotICAgICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10g PSAodW5zaWduZWQgbG9uZylzcmF0OworICAgICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMr K10gPSBjdHh0LT5tZW1fb3BzLnYycChjdHh0LCBzcmF0KTsKICAgICAgICAgZWxzZQogICAgICAg ICAgICAgcHJpbnRmKCJGYWlsZWQgdG8gYnVpbGQgU1JBVCwgc2tpcHBpbmcuLi5cbiIpOwogICAg ICAgICBpZiAoIHNsaXQgKQotICAgICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSAo dW5zaWduZWQgbG9uZylzbGl0OworICAgICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10g PSBjdHh0LT5tZW1fb3BzLnYycChjdHh0LCBzbGl0KTsKICAgICAgICAgZWxzZQogICAgICAgICAg ICAgcHJpbnRmKCJGYWlsZWQgdG8gYnVpbGQgU0xJVCwgc2tpcHBpbmcuLi5cbiIpOwogICAgIH0K QEAgLTUyNyw4ICs1MjgsOCBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2N0 eHQgKmN0eHQsIHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogICAgIG1lbWNweShmYWR0XzEw LCAmRmFkdCwgc2l6ZW9mKHN0cnVjdCBhY3BpXzEwX2ZhZHQpKTsKICAgICBmYWR0XzEwLT5oZWFk ZXIubGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBhY3BpXzEwX2ZhZHQpOwogICAgIGZhZHRfMTAtPmhl YWRlci5yZXZpc2lvbiA9IEFDUElfMV8wX0ZBRFRfUkVWSVNJT047Ci0gICAgZmFkdF8xMC0+ZHNk dCAgICAgICAgICA9ICh1bnNpZ25lZCBsb25nKWRzZHQ7Ci0gICAgZmFkdF8xMC0+ZmlybXdhcmVf Y3RybCA9ICh1bnNpZ25lZCBsb25nKWZhY3M7CisgICAgZmFkdF8xMC0+ZHNkdCAgICAgICAgICA9 IGN0eHQtPm1lbV9vcHMudjJwKGN0eHQsIGRzZHQpOworICAgIGZhZHRfMTAtPmZpcm13YXJlX2N0 cmwgPSBjdHh0LT5tZW1fb3BzLnYycChjdHh0LCBmYWNzKTsKICAgICBzZXRfY2hlY2tzdW0oZmFk dF8xMCwKICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yoc3RydWN0IGFjcGlfaGVhZGVyLCBjaGVj a3N1bSksCiAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgYWNwaV8xMF9mYWR0KSk7CkBA IC01MzYsMTAgKzUzNywxMCBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2N0 eHQgKmN0eHQsIHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogICAgIGZhZHQgPSBjdHh0LT5t ZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9mYWR0KSwgMTYpOwogICAg IGlmICghZmFkdCkgZ290byBvb207CiAgICAgbWVtY3B5KGZhZHQsICZGYWR0LCBzaXplb2Yoc3Ry dWN0IGFjcGlfMjBfZmFkdCkpOwotICAgIGZhZHQtPmRzZHQgICA9ICh1bnNpZ25lZCBsb25nKWRz ZHQ7Ci0gICAgZmFkdC0+eF9kc2R0ID0gKHVuc2lnbmVkIGxvbmcpZHNkdDsKLSAgICBmYWR0LT5m aXJtd2FyZV9jdHJsICAgPSAodW5zaWduZWQgbG9uZylmYWNzOwotICAgIGZhZHQtPnhfZmlybXdh cmVfY3RybCA9ICh1bnNpZ25lZCBsb25nKWZhY3M7CisgICAgZmFkdC0+ZHNkdCAgID0gY3R4dC0+ bWVtX29wcy52MnAoY3R4dCwgZHNkdCk7CisgICAgZmFkdC0+eF9kc2R0ID0gY3R4dC0+bWVtX29w cy52MnAoY3R4dCwgZHNkdCk7CisgICAgZmFkdC0+ZmlybXdhcmVfY3RybCAgID0gY3R4dC0+bWVt X29wcy52MnAoY3R4dCwgZmFjcyk7CisgICAgZmFkdC0+eF9maXJtd2FyZV9jdHJsID0gY3R4dC0+ bWVtX29wcy52MnAoY3R4dCwgZmFjcyk7CiAgICAgc2V0X2NoZWNrc3VtKGZhZHQsCiAgICAgICAg ICAgICAgICAgIG9mZnNldG9mKHN0cnVjdCBhY3BpX2hlYWRlciwgY2hlY2tzdW0pLAogICAgICAg ICAgICAgICAgICBzaXplb2Yoc3RydWN0IGFjcGlfMjBfZmFkdCkpOwpAQCAtNTUzLDcgKzU1NCw3 IEBAIHZvaWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwgc3RydWN0 IGFjcGlfY29uZmlnICpjb25maWcpCiAgICAgICAgICAgICAgICAgICAgICAxNik7CiAgICAgaWYg KCF4c2R0KSBnb3RvIG9vbTsKICAgICBtZW1jcHkoeHNkdCwgJlhzZHQsIHNpemVvZihzdHJ1Y3Qg YWNwaV9oZWFkZXIpKTsKLSAgICB4c2R0LT5lbnRyeVswXSA9ICh1bnNpZ25lZCBsb25nKWZhZHQ7 CisgICAgeHNkdC0+ZW50cnlbMF0gPSBjdHh0LT5tZW1fb3BzLnYycChjdHh0LCBmYWR0KTsKICAg ICBmb3IgKCBpID0gMDsgc2Vjb25kYXJ5X3RhYmxlc1tpXTsgaSsrICkKICAgICAgICAgeHNkdC0+ ZW50cnlbaSsxXSA9IHNlY29uZGFyeV90YWJsZXNbaV07CiAgICAgeHNkdC0+aGVhZGVyLmxlbmd0 aCA9IHNpemVvZihzdHJ1Y3QgYWNwaV9oZWFkZXIpICsgKGkrMSkqc2l6ZW9mKHVpbnQ2NF90KTsK QEAgLTU2Niw3ICs1NjcsNyBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2N0 eHQgKmN0eHQsIHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogICAgICAgICAgICAgICAgICAg ICAgMTYpOwogICAgIGlmICghcnNkdCkgZ290byBvb207CiAgICAgbWVtY3B5KHJzZHQsICZSc2R0 LCBzaXplb2Yoc3RydWN0IGFjcGlfaGVhZGVyKSk7Ci0gICAgcnNkdC0+ZW50cnlbMF0gPSAodW5z aWduZWQgbG9uZylmYWR0XzEwOworICAgIHJzZHQtPmVudHJ5WzBdID0gY3R4dC0+bWVtX29wcy52 MnAoY3R4dCwgZmFkdF8xMCk7CiAgICAgZm9yICggaSA9IDA7IHNlY29uZGFyeV90YWJsZXNbaV07 IGkrKyApCiAgICAgICAgIHJzZHQtPmVudHJ5W2krMV0gPSBzZWNvbmRhcnlfdGFibGVzW2ldOwog ICAgIHJzZHQtPmhlYWRlci5sZW5ndGggPSBzaXplb2Yoc3RydWN0IGFjcGlfaGVhZGVyKSArIChp KzEpKnNpemVvZih1aW50MzJfdCk7CkBAIC01ODAsOCArNTgxLDggQEAgdm9pZCBhY3BpX2J1aWxk X3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZp ZykKICAgICByc2RwID0gKHN0cnVjdCBhY3BpXzIwX3JzZHAgKiljb25maWctPnJzZHA7CiAKICAg ICBtZW1jcHkocnNkcCwgJlJzZHAsIHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9yc2RwKSk7Ci0gICAg cnNkcC0+cnNkdF9hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpcnNkdDsKLSAgICByc2RwLT54c2R0 X2FkZHJlc3MgPSAodW5zaWduZWQgbG9uZyl4c2R0OworICAgIHJzZHAtPnJzZHRfYWRkcmVzcyA9 IGN0eHQtPm1lbV9vcHMudjJwKGN0eHQsIHJzZHQpOworICAgIHJzZHAtPnhzZHRfYWRkcmVzcyA9 IGN0eHQtPm1lbV9vcHMudjJwKGN0eHQsIHhzZHQpOwogICAgIHNldF9jaGVja3N1bShyc2RwLAog ICAgICAgICAgICAgICAgICBvZmZzZXRvZihzdHJ1Y3QgYWNwaV8xMF9yc2RwLCBjaGVja3N1bSks CiAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgYWNwaV8xMF9yc2RwKSk7Ci0tIAoxLjcu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=