From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= Subject: [PATCH v2 25/35] libxl/libxl_pci.c: used LOG*D functions Date: Thu, 17 Nov 2016 18:36:07 +0100 Message-ID: <20161117173617.6697-26-cbosdonnat@suse.com> References: <20161117173617.6697-1-cbosdonnat@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161117173617.6697-1-cbosdonnat@suse.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 Liu , Ian Jackson , Cedric Bosdonnat List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2VkcmljIEJvc2Rvbm5hdCA8Y2Jvc2Rvbm5hdEBzdXNlLmNvbT4KClVzZSBMT0cqRCBs b2dnaW5nIGZ1bmN0aW9ucyB3aGVyZSBwb3NzaWJsZSBpbnN0ZWFkIG9mIHRoZSBMT0cqIG9uZXMu CgpTaWduZWQtb2ZmLWJ5OiBDw6lkcmljIEJvc2Rvbm5hdCA8Y2Jvc2Rvbm5hdEBzdXNlLmNvbT4K LS0tCiB0b29scy9saWJ4bC9saWJ4bF9wY2kuYyB8IDE1MyArKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3OSBpbnNlcnRpb25z KCspLCA3NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9wY2ku YyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3BjaS5jCmluZGV4IDZmOGY0OWMuLjNiNzA3ZjMgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3BjaS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Bj aS5jCkBAIC04Niw3ICs4Niw3IEBAIGludCBsaWJ4bF9fY3JlYXRlX3BjaV9iYWNrZW5kKGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIGZyb250ID0gZmxleGFycmF5X21ha2UoZ2Ms IDE2LCAxKTsKICAgICBiYWNrID0gZmxleGFycmF5X21ha2UoZ2MsIDE2LCAxKTsKIAotICAgIExP RyhERUJVRywgIkNyZWF0aW5nIHBjaSBiYWNrZW5kIik7CisgICAgTE9HRChERUJVRywgZG9taWQs ICJDcmVhdGluZyBwY2kgYmFja2VuZCIpOwogCiAgICAgLyogYWRkIHBjaSBkZXZpY2UgKi8KICAg ICBsaWJ4bF9fZGV2aWNlX2Zyb21fcGNpZGV2KGdjLCBkb21pZCwgcGNpZGV2LCAmZGV2aWNlKTsK QEAgLTE0MSw3ICsxNDEsNyBAQCBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfcGNpX2FkZF94ZW5z dG9yZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwgbGlieGxfZAogCiAgICAgYmFjayA9 IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CiAKLSAgICBMT0coREVCVUcsICJBZGRpbmcgbmV3 IHBjaSBkZXZpY2UgdG8geGVuc3RvcmUiKTsKKyAgICBMT0dEKERFQlVHLCBkb21pZCwgIkFkZGlu ZyBuZXcgcGNpIGRldmljZSB0byB4ZW5zdG9yZSIpOwogICAgIG51bSA9IGF0b2kobnVtX2RldnMp OwogICAgIGxpYnhsX2NyZWF0ZV9wY2lfYmFja2VuZF9kZXZpY2UoZ2MsIGJhY2ssIG51bSwgcGNp ZGV2KTsKICAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoYmFjaywgIm51bV9kZXZzIiwgR0NTUFJJ TlRGKCIlZCIsIG51bSArIDEpKTsKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdGF0aWMgaW50IGxpYnhs X19kZXZpY2VfcGNpX3JlbW92ZV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCwgbGlieAogCiAgICAgaWYgKGRvbXR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFYpIHsKICAg ICAgICAgaWYgKGxpYnhsX193YWl0X2Zvcl9iYWNrZW5kKGdjLCBiZV9wYXRoLCBHQ1NQUklOVEYo IiVkIiwgWGVuYnVzU3RhdGVDb25uZWN0ZWQpKSA8IDApIHsKLSAgICAgICAgICAgIExPRyhERUJV RywgInBjaSBiYWNrZW5kIGF0ICVzIGlzIG5vdCByZWFkeSIsIGJlX3BhdGgpOworICAgICAgICAg ICAgTE9HRChERUJVRywgZG9taWQsICJwY2kgYmFja2VuZCBhdCAlcyBpcyBub3QgcmVhZHkiLCBi ZV9wYXRoKTsKICAgICAgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOwogICAgICAgICB9CiAgICAg fQpAQCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV9wY2lfcmVtb3Zl X3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLCBsaWJ4CiAgICAgICAgIH0K ICAgICB9CiAgICAgaWYgKGkgPT0gbnVtKSB7Ci0gICAgICAgIExPRyhFUlJPUiwgIkNvdWxkbid0 IGZpbmQgdGhlIGRldmljZSBvbiB4ZW5zdG9yZSIpOworICAgICAgICBMT0dEKEVSUk9SLCBkb21p ZCwgIkNvdWxkbid0IGZpbmQgdGhlIGRldmljZSBvbiB4ZW5zdG9yZSIpOwogICAgICAgICByZXR1 cm4gRVJST1JfSU5WQUw7CiAgICAgfQogCkBAIC0yMzYsNyArMjM2LDcgQEAgcmV0cnlfdHJhbnNh Y3Rpb246CiAKICAgICBpZiAoZG9tdHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9QVikgewogICAg ICAgICBpZiAobGlieGxfX3dhaXRfZm9yX2JhY2tlbmQoZ2MsIGJlX3BhdGgsIEdDU1BSSU5URigi JWQiLCBYZW5idXNTdGF0ZUNvbm5lY3RlZCkpIDwgMCkgewotICAgICAgICAgICAgTE9HKERFQlVH LCAicGNpIGJhY2tlbmQgYXQgJXMgaXMgbm90IHJlYWR5IiwgYmVfcGF0aCk7CisgICAgICAgICAg ICBMT0dEKERFQlVHLCBkb21pZCwgInBjaSBiYWNrZW5kIGF0ICVzIGlzIG5vdCByZWFkeSIsIGJl X3BhdGgpOwogICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiAgICAgICAgIH0KICAgICB9 CkBAIC05ODEsOSArOTgxLDkgQEAgc3RhdGljIGludCBxZW11X3BjaV9hZGRfeGVuc3RvcmUobGli eGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgdmRldmZuID0gbGlieGxfX3hzX3JlYWQo Z2MsIFhCVF9OVUxMLCBwYXRoKTsKICAgICBwYXRoID0gREVWSUNFX01PREVMX1hTX1BBVEgoZ2Ms IGRtX2RvbWlkLCBkb21pZCwgIi9zdGF0ZSIpOwogICAgIGlmICggcmMgPCAwICkKLSAgICAgICAg TE9HKEVSUk9SLCAicWVtdSByZWZ1c2VkIHRvIGFkZCBkZXZpY2U6ICVzIiwgdmRldmZuKTsKKyAg ICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJxZW11IHJlZnVzZWQgdG8gYWRkIGRldmljZTogJXMi LCB2ZGV2Zm4pOwogICAgIGVsc2UgaWYgKCBzc2NhbmYodmRldmZuLCAiMHgleCIsICZwY2lkZXYt PnZkZXZmbikgIT0gMSApIHsKLSAgICAgICAgTE9HKEVSUk9SLCAid3JvbmcgZm9ybWF0IGZvciB0 aGUgdmRldmZuOiAnJXMnIiwgdmRldmZuKTsKKyAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJ3 cm9uZyBmb3JtYXQgZm9yIHRoZSB2ZGV2Zm46ICclcyciLCB2ZGV2Zm4pOwogICAgICAgICByYyA9 IC0xOwogICAgIH0KICAgICB4c193cml0ZShjdHgtPnhzaCwgWEJUX05VTEwsIHBhdGgsIHN0YXRl LCBzdHJsZW4oc3RhdGUpKTsKQEAgLTEwMDAsNiArMTAwMCw4IEBAIHN0YXRpYyBpbnQgZG9fcGNp X2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX3BjaSAqcGNp ZGV2LCBpCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LCBlbmQsIGZsYWdzLCBzaXplOwog ICAgIGludCBpcnEsIGksIHJjLCBodm0gPSAwOwogICAgIHVpbnQzMl90IGZsYWcgPSBYRU5fRE9N Q1RMX0RFVl9SRE1fUkVMQVhFRDsKKyAgICB1aW50MzJfdCBkb21haW5pZCA9IGRvbWlkOworICAg IGJvb2wgaXNzdHViZG9tID0gIWxpYnhsX2lzX3N0dWJkb20oY3R4LCBkb21pZCwgJmRvbWFpbmlk KTsKIAogICAgIGlmICh0eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0lOVkFMSUQpCiAgICAgICAg IHJldHVybiBFUlJPUl9GQUlMOwpAQCAtMTAzMSw3ICsxMDMzLDcgQEAgc3RhdGljIGludCBkb19w Y2lfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfcGNpICpw Y2lkZXYsIGkKICAgICBpcnEgPSAwOwogCiAgICAgaWYgKGYgPT0gTlVMTCkgewotICAgICAgICBM T0dFKEVSUk9SLCAiQ291bGRuJ3Qgb3BlbiAlcyIsIHN5c2ZzX3BhdGgpOworICAgICAgICBMT0dF RChFUlJPUiwgZG9tYWluaWQsICJDb3VsZG4ndCBvcGVuICVzIiwgc3lzZnNfcGF0aCk7CiAgICAg ICAgIHJldHVybiBFUlJPUl9GQUlMOwogICAgIH0KICAgICBmb3IgKGkgPSAwOyBpIDwgUFJPQ19Q Q0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7CkBAIC0xMDQyLDEwICsxMDQ0LDEwIEBAIHN0YXRpYyBp bnQgZG9fcGNpX2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNl X3BjaSAqcGNpZGV2LCBpCiAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBQQ0lfQkFSX0lPKSB7CiAg ICAgICAgICAgICAgICAgcmMgPSB4Y19kb21haW5faW9wb3J0X3Blcm1pc3Npb24oY3R4LT54Y2gs IGRvbWlkLCBzdGFydCwgc2l6ZSwgMSk7CiAgICAgICAgICAgICAgICAgaWYgKHJjIDwgMCkgewot ICAgICAgICAgICAgICAgICAgICBMT0dFKEVSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAg ICJFcnJvcjogeGNfZG9tYWluX2lvcG9ydF9wZXJtaXNzaW9uIGVycm9yIDB4JWxseC8weCVsbHgi LAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemUpOworICAgICAgICAgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWluaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICJFcnJvcjogeGNfZG9tYWluX2lvcG9ydF9wZXJtaXNz aW9uIGVycm9yIDB4JWxseC8weCVsbHgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFy dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSk7CiAgICAgICAgICAgICAgICAgICAg IGZjbG9zZShmKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiAgICAg ICAgICAgICAgICAgfQpAQCAtMTA1MywxMCArMTA1NSwxMCBAQCBzdGF0aWMgaW50IGRvX3BjaV9h ZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9wY2kgKnBjaWRl diwgaQogICAgICAgICAgICAgICAgIHJjID0geGNfZG9tYWluX2lvbWVtX3Blcm1pc3Npb24oY3R4 LT54Y2gsIGRvbWlkLCBzdGFydD4+WENfUEFHRV9TSElGVCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaXplKyhYQ19QQUdFX1NJWkUtMSkpPj5YQ19Q QUdFX1NISUZULCAxKTsKICAgICAgICAgICAgICAgICBpZiAocmMgPCAwKSB7Ci0gICAgICAgICAg ICAgICAgICAgIExPR0UoRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yOiB4 Y19kb21haW5faW9tZW1fcGVybWlzc2lvbiBlcnJvciAweCVsbHgvMHglbGx4IiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICBzdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplKTsK KyAgICAgICAgICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWFpbmlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAiRXJyb3I6IHhjX2RvbWFpbl9pb21lbV9wZXJtaXNzaW9uIGVycm9yIDB4 JWxseC8weCVsbHgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZSk7CiAgICAgICAgICAgICAgICAgICAgIGZjbG9zZShmKTsK ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiAgICAgICAgICAgICAgICAg fQpAQCAtMTA2OCwxOSArMTA3MCwxOSBAQCBzdGF0aWMgaW50IGRvX3BjaV9hZGQobGlieGxfX2dj ICpnYywgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9wY2kgKnBjaWRldiwgaQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lkZXYtPmJ1cywgcGNpZGV2LT5kZXYsIHBjaWRl di0+ZnVuYyk7CiAgICAgZiA9IGZvcGVuKHN5c2ZzX3BhdGgsICJyIik7CiAgICAgaWYgKGYgPT0g TlVMTCkgewotICAgICAgICBMT0dFKEVSUk9SLCAiQ291bGRuJ3Qgb3BlbiAlcyIsIHN5c2ZzX3Bh dGgpOworICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWluaWQsICJDb3VsZG4ndCBvcGVuICVzIiwg c3lzZnNfcGF0aCk7CiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KICAgICBpZiAoKGZzY2FuZihm LCAiJXUiLCAmaXJxKSA9PSAxKSAmJiBpcnEpIHsKICAgICAgICAgcmMgPSB4Y19waHlzZGV2X21h cF9waXJxKGN0eC0+eGNoLCBkb21pZCwgaXJxLCAmaXJxKTsKICAgICAgICAgaWYgKHJjIDwgMCkg ewotICAgICAgICAgICAgTE9HRShFUlJPUiwgIkVycm9yOiB4Y19waHlzZGV2X21hcF9waXJxIGly cT0lZCIsIGlycSk7CisgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWluaWQsICJFcnJvcjog eGNfcGh5c2Rldl9tYXBfcGlycSBpcnE9JWQiLCBpcnEpOwogICAgICAgICAgICAgZmNsb3NlKGYp OwogICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiAgICAgICAgIH0KICAgICAgICAgcmMg PSB4Y19kb21haW5faXJxX3Blcm1pc3Npb24oY3R4LT54Y2gsIGRvbWlkLCBpcnEsIDEpOwogICAg ICAgICBpZiAocmMgPCAwKSB7Ci0gICAgICAgICAgICBMT0dFKEVSUk9SLCAiRXJyb3I6IHhjX2Rv bWFpbl9pcnFfcGVybWlzc2lvbiBpcnE9JWQiLCBpcnEpOworICAgICAgICAgICAgTE9HRUQoRVJS T1IsIGRvbWFpbmlkLCAiRXJyb3I6IHhjX2RvbWFpbl9pcnFfcGVybWlzc2lvbiBpcnE9JWQiLCBp cnEpOwogICAgICAgICAgICAgZmNsb3NlKGYpOwogICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0ZB SUw7CiAgICAgICAgIH0KQEAgLTEwOTEsMjIgKzEwOTMsMjIgQEAgc3RhdGljIGludCBkb19wY2lf YWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfcGNpICpwY2lk ZXYsIGkKICAgICBpZiAocGNpZGV2LT5wZXJtaXNzaXZlKSB7CiAgICAgICAgIGlmICggc3lzZnNf d3JpdGVfYmRmKGdjLCBTWVNGU19QQ0lCQUNLX0RSSVZFUiIvcGVybWlzc2l2ZSIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBjaWRldikgPCAwICkgewotICAgICAgICAgICAgTE9HKEVS Uk9SLCAiU2V0dGluZyBwZXJtaXNzaXZlIGZvciBkZXZpY2UiKTsKKyAgICAgICAgICAgIExPR0Qo RVJST1IsIGRvbWFpbmlkLCAiU2V0dGluZyBwZXJtaXNzaXZlIGZvciBkZXZpY2UiKTsKICAgICAg ICAgICAgIHJldHVybiBFUlJPUl9GQUlMOwogICAgICAgICB9CiAgICAgfQogCiBvdXQ6Ci0gICAg aWYgKCFsaWJ4bF9pc19zdHViZG9tKGN0eCwgZG9taWQsIE5VTEwpKSB7CisgICAgaWYgKCFpc3N0 dWJkb20pIHsKICAgICAgICAgaWYgKHBjaWRldi0+cmRtX3BvbGljeSA9PSBMSUJYTF9SRE1fUkVT RVJWRV9QT0xJQ1lfU1RSSUNUKSB7CiAgICAgICAgICAgICBmbGFnICY9IH5YRU5fRE9NQ1RMX0RF Vl9SRE1fUkVMQVhFRDsKICAgICAgICAgfSBlbHNlIGlmIChwY2lkZXYtPnJkbV9wb2xpY3kgIT0g TElCWExfUkRNX1JFU0VSVkVfUE9MSUNZX1JFTEFYRUQpIHsKLSAgICAgICAgICAgIExPR0UoRVJS T1IsICJ1bmtub3duIHJkbSBjaGVjayBmbGFnLiIpOworICAgICAgICAgICAgTE9HRUQoRVJST1Is IGRvbWFpbmlkLCAidW5rbm93biByZG0gY2hlY2sgZmxhZy4iKTsKICAgICAgICAgICAgIHJldHVy biBFUlJPUl9GQUlMOwogICAgICAgICB9CiAgICAgICAgIHJjID0geGNfYXNzaWduX2RldmljZShj dHgtPnhjaCwgZG9taWQsIHBjaWRldl9lbmNvZGVfYmRmKHBjaWRldiksIGZsYWcpOwogICAgICAg ICBpZiAocmMgPCAwICYmIChodm0gfHwgZXJybm8gIT0gRU5PU1lTKSkgewotICAgICAgICAgICAg TE9HRShFUlJPUiwgInhjX2Fzc2lnbl9kZXZpY2UgZmFpbGVkIik7CisgICAgICAgICAgICBMT0dF RChFUlJPUiwgZG9tYWluaWQsICJ4Y19hc3NpZ25fZGV2aWNlIGZhaWxlZCIpOwogICAgICAgICAg ICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTMwLDI3ICsxMTMy LDI3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV9wY2lfcmVzZXQobGlieGxfX2djICpnYywg dW5zaWduZWQgaW50IGRvbWFpbiwgdW5zaWduZWQKICAgICAgICAgY2hhciAqYnVmID0gR0NTUFJJ TlRGKFBDSV9CREYsIGRvbWFpbiwgYnVzLCBkZXYsIGZ1bmMpOwogICAgICAgICByYyA9IHdyaXRl KGZkLCBidWYsIHN0cmxlbihidWYpKTsKICAgICAgICAgaWYgKHJjIDwgMCkKLSAgICAgICAgICAg IExPRyhFUlJPUiwgIndyaXRlIHRvICVzIHJldHVybmVkICVkIiwgcmVzZXQsIHJjKTsKKyAgICAg ICAgICAgIExPR0QoRVJST1IsIGRvbWFpbiwgIndyaXRlIHRvICVzIHJldHVybmVkICVkIiwgcmVz ZXQsIHJjKTsKICAgICAgICAgY2xvc2UoZmQpOwogICAgICAgICByZXR1cm4gcmMgPCAwID8gcmMg OiAwOwogICAgIH0KICAgICBpZiAoZXJybm8gIT0gRU5PRU5UKQotICAgICAgICBMT0dFKEVSUk9S LCAiRmFpbGVkIHRvIGFjY2VzcyBwY2liYWNrIHBhdGggJXMiLCByZXNldCk7CisgICAgICAgIExP R0VEKEVSUk9SLCBkb21haW4sICJGYWlsZWQgdG8gYWNjZXNzIHBjaWJhY2sgcGF0aCAlcyIsIHJl c2V0KTsKICAgICByZXNldCA9IEdDU1BSSU5URigiJXMvIlBDSV9CREYiL3Jlc2V0IiwgU1lTRlNf UENJX0RFViwgZG9tYWluLCBidXMsIGRldiwgZnVuYyk7CiAgICAgZmQgPSBvcGVuKHJlc2V0LCBP X1dST05MWSk7CiAgICAgaWYgKGZkID49IDApIHsKICAgICAgICAgcmMgPSB3cml0ZShmZCwgIjEi LCAxKTsKICAgICAgICAgaWYgKHJjIDwgMCkKLSAgICAgICAgICAgIExPR0UoRVJST1IsICJ3cml0 ZSB0byAlcyByZXR1cm5lZCAlZCIsIHJlc2V0LCByYyk7CisgICAgICAgICAgICBMT0dFRChFUlJP UiwgZG9tYWluLCAid3JpdGUgdG8gJXMgcmV0dXJuZWQgJWQiLCByZXNldCwgcmMpOwogICAgICAg ICBjbG9zZShmZCk7CiAgICAgICAgIHJldHVybiByYyA8IDAgPyByYyA6IDA7CiAgICAgfQogICAg IGlmIChlcnJubyA9PSBFTk9FTlQpIHsKLSAgICAgICAgTE9HKEVSUk9SLAotICAgICAgICAgICAg IlRoZSBrZXJuZWwgZG9lc24ndCBzdXBwb3J0IHJlc2V0IGZyb20gc3lzZnMgZm9yIFBDSSBkZXZp Y2UgIlBDSV9CREYsCi0gICAgICAgICAgICBkb21haW4sIGJ1cywgZGV2LCBmdW5jKTsKKyAgICAg ICAgTE9HRChFUlJPUiwgZG9tYWluLAorICAgICAgICAgICAgICJUaGUga2VybmVsIGRvZXNuJ3Qg c3VwcG9ydCByZXNldCBmcm9tIHN5c2ZzIGZvciBQQ0kgZGV2aWNlICJQQ0lfQkRGLAorICAgICAg ICAgICAgIGRvbWFpbiwgYnVzLCBkZXYsIGZ1bmMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIExP R0UoRVJST1IsICJGYWlsZWQgdG8gYWNjZXNzIHJlc2V0IHBhdGggJXMiLCByZXNldCk7CisgICAg ICAgIExPR0VEKEVSUk9SLCBkb21haW4sICJGYWlsZWQgdG8gYWNjZXNzIHJlc2V0IHBhdGggJXMi LCByZXNldCk7CiAgICAgfQogICAgIHJldHVybiAtMTsKIH0KQEAgLTEyMDIsMTEgKzEyMDQsMTEg QEAgaW50IGxpYnhsX19kZXZpY2VfcGNpX2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCwgbGlieGxfZGV2aWNlX3BjaSAqcGNpZGUKICAgICBpZiAobGlieGxfX2RvbWFpbl90eXBlKGdj LCBkb21pZCkgPT0gTElCWExfRE9NQUlOX1RZUEVfSFZNKSB7CiAgICAgICAgIHJjID0geGNfdGVz dF9hc3NpZ25fZGV2aWNlKGN0eC0+eGNoLCBkb21pZCwgcGNpZGV2X2VuY29kZV9iZGYocGNpZGV2 KSk7CiAgICAgICAgIGlmIChyYykgewotICAgICAgICAgICAgTE9HKEVSUk9SLAotICAgICAgICAg ICAgICAgICJQQ0kgZGV2aWNlICUwNHg6JTAyeDolMDJ4LiV1ICVzPyIsCi0gICAgICAgICAgICAg ICAgcGNpZGV2LT5kb21haW4sIHBjaWRldi0+YnVzLCBwY2lkZXYtPmRldiwgcGNpZGV2LT5mdW5j LAotICAgICAgICAgICAgICAgIGVycm5vID09IEVOT1NZUyA/ICJjYW5ub3QgYmUgYXNzaWduZWQg LSBubyBJT01NVSIKLSAgICAgICAgICAgICAgICA6ICJhbHJlYWR5IGFzc2lnbmVkIHRvIGEgZGlm ZmVyZW50IGd1ZXN0Iik7CisgICAgICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwKKyAgICAgICAg ICAgICAgICAgIlBDSSBkZXZpY2UgJTA0eDolMDJ4OiUwMnguJXUgJXM/IiwKKyAgICAgICAgICAg ICAgICAgcGNpZGV2LT5kb21haW4sIHBjaWRldi0+YnVzLCBwY2lkZXYtPmRldiwgcGNpZGV2LT5m dW5jLAorICAgICAgICAgICAgICAgICBlcnJubyA9PSBFTk9TWVMgPyAiY2Fubm90IGJlIGFzc2ln bmVkIC0gbm8gSU9NTVUiCisgICAgICAgICAgICAgICAgIDogImFscmVhZHkgYXNzaWduZWQgdG8g YSBkaWZmZXJlbnQgZ3Vlc3QiKTsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAg ICAgfQpAQCAtMTIyMSwyMSArMTIyMywyMSBAQCBpbnQgbGlieGxfX2RldmljZV9wY2lfYWRkKGxp YnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfcGNpICpwY2lkZQogICAg IH0KIAogICAgIGlmICghbGlieGxfcGNpZGV2X2Fzc2lnbmFibGUoY3R4LCBwY2lkZXYpKSB7Ci0g ICAgICAgIExPRyhFUlJPUiwgIlBDSSBkZXZpY2UgJXg6JXg6JXguJXggaXMgbm90IGFzc2lnbmFi bGUiLAotICAgICAgICAgICAgcGNpZGV2LT5kb21haW4sIHBjaWRldi0+YnVzLCBwY2lkZXYtPmRl diwgcGNpZGV2LT5mdW5jKTsKKyAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJQQ0kgZGV2aWNl ICV4OiV4OiV4LiV4IGlzIG5vdCBhc3NpZ25hYmxlIiwKKyAgICAgICAgICAgICBwY2lkZXYtPmRv bWFpbiwgcGNpZGV2LT5idXMsIHBjaWRldi0+ZGV2LCBwY2lkZXYtPmZ1bmMpOwogICAgICAgICBy YyA9IEVSUk9SX0ZBSUw7CiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAogICAgIHJjID0gZ2V0 X2FsbF9hc3NpZ25lZF9kZXZpY2VzKGdjLCAmYXNzaWduZWQsICZudW1fYXNzaWduZWQpOwogICAg IGlmICggcmMgKSB7Ci0gICAgICAgIExPRyhFUlJPUiwKLSAgICAgICAgICAgICJjYW5ub3QgZGV0 ZXJtaW5lIGlmIGRldmljZSBpcyBhc3NpZ25lZCwgcmVmdXNpbmcgdG8gY29udGludWUiKTsKKyAg ICAgICAgTE9HRChFUlJPUiwgZG9taWQsCisgICAgICAgICAgICAgImNhbm5vdCBkZXRlcm1pbmUg aWYgZGV2aWNlIGlzIGFzc2lnbmVkLCByZWZ1c2luZyB0byBjb250aW51ZSIpOwogICAgICAgICBn b3RvIG91dDsKICAgICB9CiAgICAgaWYgKCBpc19wY2lkZXZfaW5fYXJyYXkoYXNzaWduZWQsIG51 bV9hc3NpZ25lZCwgcGNpZGV2LT5kb21haW4sCiAgICAgICAgICAgICAgICAgICAgICBwY2lkZXYt PmJ1cywgcGNpZGV2LT5kZXYsIHBjaWRldi0+ZnVuYykgKSB7Ci0gICAgICAgIExPRyhFUlJPUiwg IlBDSSBkZXZpY2UgYWxyZWFkeSBhdHRhY2hlZCB0byBhIGRvbWFpbiIpOworICAgICAgICBMT0dE KEVSUk9SLCBkb21pZCwgIlBDSSBkZXZpY2UgYWxyZWFkeSBhdHRhY2hlZCB0byBhIGRvbWFpbiIp OwogICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KQEAg LTEyNTUsNyArMTI1Nyw3IEBAIGludCBsaWJ4bF9fZGV2aWNlX3BjaV9hZGQobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9wY2kgKnBjaWRlCiAKICAgICBpZiAoIHBj aWRldi0+dmZ1bmNfbWFzayA9PSBMSUJYTF9QQ0lfRlVOQ19BTEwgKSB7CiAgICAgICAgIGlmICgg IShwY2lkZXYtPnZkZXZmbiA+PiAzKSApIHsKLSAgICAgICAgICAgIExPRyhFUlJPUiwgIk11c3Qg c3BlY2lmeSBhIHYtc2xvdCBmb3IgbXVsdGktZnVuY3Rpb24gZGV2aWNlcyIpOworICAgICAgICAg ICAgTE9HRChFUlJPUiwgZG9taWQsICJNdXN0IHNwZWNpZnkgYSB2LXNsb3QgZm9yIG11bHRpLWZ1 bmN0aW9uIGRldmljZXMiKTsKICAgICAgICAgICAgIHJjID0gRVJST1JfSU5WQUw7CiAgICAgICAg ICAgICBnb3RvIG91dDsKICAgICAgICAgfQpAQCAtMTMwMSw3ICsxMzAzLDcgQEAgc3RhdGljIHZv aWQgbGlieGxfX2FkZF9wY2lkZXZzKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2FvICphbywgdWlu dDMyX3QgZG9taWQsCiAgICAgZm9yIChpID0gMDsgaSA8IGRfY29uZmlnLT5udW1fcGNpZGV2czsg aSsrKSB7CiAgICAgICAgIHJjID0gbGlieGxfX2RldmljZV9wY2lfYWRkKGdjLCBkb21pZCwgJmRf Y29uZmlnLT5wY2lkZXZzW2ldLCAxKTsKICAgICAgICAgaWYgKHJjIDwgMCkgewotICAgICAgICAg ICAgTE9HKEVSUk9SLCAibGlieGxfZGV2aWNlX3BjaV9hZGQgZmFpbGVkOiAlZCIsIHJjKTsKKyAg ICAgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAibGlieGxfZGV2aWNlX3BjaV9hZGQgZmFpbGVk OiAlZCIsIHJjKTsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAgICAgfQpAQCAt MTMxMCw3ICsxMzEyLDcgQEAgc3RhdGljIHZvaWQgbGlieGxfX2FkZF9wY2lkZXZzKGxpYnhsX19l Z2MgKmVnYywgbGlieGxfX2FvICphbywgdWludDMyX3QgZG9taWQsCiAgICAgICAgIHJjID0gbGli eGxfX2NyZWF0ZV9wY2lfYmFja2VuZChnYywgZG9taWQsIGRfY29uZmlnLT5wY2lkZXZzLAogICAg ICAgICAgICAgZF9jb25maWctPm51bV9wY2lkZXZzKTsKICAgICAgICAgaWYgKHJjIDwgMCkgewot ICAgICAgICAgICAgTE9HKEVSUk9SLCAibGlieGxfY3JlYXRlX3BjaV9iYWNrZW5kIGZhaWxlZDog JWQiLCByYyk7CisgICAgICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgImxpYnhsX2NyZWF0ZV9w Y2lfYmFja2VuZCBmYWlsZWQ6ICVkIiwgcmMpOwogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAg ICAgIH0KICAgICB9CkBAIC0xMzQyLDcgKzEzNDQsNyBAQCBzdGF0aWMgaW50IHFlbXVfcGNpX3Jl bW92ZV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgbGli eGxfX3FlbXVfdHJhZGl0aW9uYWxfY21kKGdjLCBkb21pZCwgInBjaS1yZW0iKTsKICAgICAgICAg aWYgKGxpYnhsX193YWl0X2Zvcl9kZXZpY2VfbW9kZWxfZGVwcmVjYXRlZChnYywgZG9taWQsICJw Y2ktcmVtb3ZlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsIE5VTEwsIE5VTEwpIDwgMCkgewotICAgICAgICAgICAgTE9HKEVSUk9SLCAiRGV2aWNlIE1v ZGVsIGRpZG4ndCByZXNwb25kIGluIHRpbWUiKTsKKyAgICAgICAgICAgIExPR0QoRVJST1IsIGRv bWlkLCAiRGV2aWNlIE1vZGVsIGRpZG4ndCByZXNwb25kIGluIHRpbWUiKTsKICAgICAgICAgICAg IC8qIFRoaXMgZGVwZW5kcyBvbiBndWVzdCBvcGVyYXRpbmcgc3lzdGVtIGFja25vd2xlZGdpbmcg dGhlCiAgICAgICAgICAgICAgKiBTQ0ksIGlmIGl0IGRvZXNuJ3QgcmVzcG9uZCBpbiB0aW1lIHRo ZW4gd2UgbWF5IHdpc2ggdG8KICAgICAgICAgICAgICAqIGZvcmNlIHRoZSByZW1vdmFsLgpAQCAt MTM2Nyw2ICsxMzY5LDkgQEAgc3RhdGljIGludCBkb19wY2lfcmVtb3ZlKGxpYnhsX19nYyAqZ2Ms IHVpbnQzMl90IGRvbWlkLAogICAgIGxpYnhsX2RvbWFpbl90eXBlIHR5cGUgPSBsaWJ4bF9fZG9t YWluX3R5cGUoZ2MsIGRvbWlkKTsKICAgICBpbnQgaHZtID0gMCwgcmMsIG51bTsKICAgICBpbnQg c3R1YmRvbWlkID0gMDsKKyAgICB1aW50MzJfdCBkb21haW5pZCA9IGRvbWlkOworICAgIGJvb2wg aXNzdHViZG9tID0gIWxpYnhsX2lzX3N0dWJkb20oY3R4LCBkb21pZCwgJmRvbWFpbmlkKTsKKwog CiAgICAgYXNzaWduZWQgPSBsaWJ4bF9kZXZpY2VfcGNpX2xpc3QoY3R4LCBkb21pZCwgJm51bSk7 CiAgICAgaWYgKCBhc3NpZ25lZCA9PSBOVUxMICkKQEAgLTEzNzUsNyArMTM4MCw3IEBAIHN0YXRp YyBpbnQgZG9fcGNpX3JlbW92ZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICBy YyA9IEVSUk9SX0lOVkFMOwogICAgIGlmICggIWlzX3BjaWRldl9pbl9hcnJheShhc3NpZ25lZCwg bnVtLCBwY2lkZXYtPmRvbWFpbiwKICAgICAgICAgICAgICAgICAgICAgICBwY2lkZXYtPmJ1cywg cGNpZGV2LT5kZXYsIHBjaWRldi0+ZnVuYykgKSB7Ci0gICAgICAgIExPRyhFUlJPUiwgIlBDSSBk ZXZpY2Ugbm90IGF0dGFjaGVkIHRvIHRoaXMgZG9tYWluIik7CisgICAgICAgIExPR0QoRVJST1Is IGRvbWFpbmlkLCAiUENJIGRldmljZSBub3QgYXR0YWNoZWQgdG8gdGhpcyBkb21haW4iKTsKICAg ICAgICAgZ290byBvdXRfZmFpbDsKICAgICB9CiAKQEAgLTE0MTIsNyArMTQxNyw3IEBAIHN0YXRp YyBpbnQgZG9fcGNpX3JlbW92ZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAg ICAgaW50IGk7CiAKICAgICAgICAgaWYgKGYgPT0gTlVMTCkgewotICAgICAgICAgICAgTE9HRShF UlJPUiwgIkNvdWxkbid0IG9wZW4gJXMiLCBzeXNmc19wYXRoKTsKKyAgICAgICAgICAgIExPR0VE KEVSUk9SLCBkb21haW5pZCwgIkNvdWxkbid0IG9wZW4gJXMiLCBzeXNmc19wYXRoKTsKICAgICAg ICAgICAgIGdvdG8gc2tpcDE7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChpID0gMDsgaSA8IFBS T0NfUENJX05VTV9SRVNPVVJDRVM7IGkrKykgewpAQCAtMTQyMywxOCArMTQyOCwxOCBAQCBzdGF0 aWMgaW50IGRvX3BjaV9yZW1vdmUobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAg ICAgICAgICAgICAgaWYgKGZsYWdzICYgUENJX0JBUl9JTykgewogICAgICAgICAgICAgICAgICAg ICByYyA9IHhjX2RvbWFpbl9pb3BvcnRfcGVybWlzc2lvbihjdHgtPnhjaCwgZG9taWQsIHN0YXJ0 LCBzaXplLCAwKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHJjIDwgMCkKLSAgICAgICAgICAg ICAgICAgICAgICAgIExPR0UoRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4 Y19kb21haW5faW9wb3J0X3Blcm1pc3Npb24gZXJyb3IgMHgleC8weCV4IiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emUpOworICAgICAgICAgICAgICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWFpbmlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInhjX2RvbWFpbl9pb3BvcnRfcGVybWlzc2lvbiBl cnJvciAweCV4LzB4JXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplKTsKICAgICAgICAgICAgICAgICB9IGVs c2UgewogICAgICAgICAgICAgICAgICAgICByYyA9IHhjX2RvbWFpbl9pb21lbV9wZXJtaXNzaW9u KGN0eC0+eGNoLCBkb21pZCwgc3RhcnQ+PlhDX1BBR0VfU0hJRlQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNpemUrKFhDX1BBR0VfU0laRS0x KSk+PlhDX1BBR0VfU0hJRlQsIDApOwogICAgICAgICAgICAgICAgICAgICBpZiAocmMgPCAwKQot ICAgICAgICAgICAgICAgICAgICAgICAgTE9HRShFUlJPUiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInhjX2RvbWFpbl9pb21lbV9wZXJtaXNzaW9uIGVycm9yIDB4JXgvMHgleCIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21h aW5pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4Y19kb21haW5faW9tZW1fcGVy bWlzc2lvbiBlcnJvciAweCV4LzB4JXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplKTsKICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE0NDQsMTcgKzE0NDksMTcgQEAg c2tpcDE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNpZGV2LT5idXMsIHBjaWRl di0+ZGV2LCBwY2lkZXYtPmZ1bmMpOwogICAgICAgICBmID0gZm9wZW4oc3lzZnNfcGF0aCwgInIi KTsKICAgICAgICAgaWYgKGYgPT0gTlVMTCkgewotICAgICAgICAgICAgTE9HRShFUlJPUiwgIkNv dWxkbid0IG9wZW4gJXMiLCBzeXNmc19wYXRoKTsKKyAgICAgICAgICAgIExPR0VEKEVSUk9SLCBk b21haW5pZCwgIkNvdWxkbid0IG9wZW4gJXMiLCBzeXNmc19wYXRoKTsKICAgICAgICAgICAgIGdv dG8gb3V0OwogICAgICAgICB9CiAgICAgICAgIGlmICgoZnNjYW5mKGYsICIldSIsICZpcnEpID09 IDEpICYmIGlycSkgewogICAgICAgICAgICAgcmMgPSB4Y19waHlzZGV2X3VubWFwX3BpcnEoY3R4 LT54Y2gsIGRvbWlkLCBpcnEpOwogICAgICAgICAgICAgaWYgKHJjIDwgMCkgewotICAgICAgICAg ICAgICAgIExPR0UoRVJST1IsICJ4Y19waHlzZGV2X3VubWFwX3BpcnEgaXJxPSVkIiwgaXJxKTsK KyAgICAgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWluaWQsICJ4Y19waHlzZGV2X3VubWFw X3BpcnEgaXJxPSVkIiwgaXJxKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJjID0geGNf ZG9tYWluX2lycV9wZXJtaXNzaW9uKGN0eC0+eGNoLCBkb21pZCwgaXJxLCAwKTsKICAgICAgICAg ICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9tYWlu X2lycV9wZXJtaXNzaW9uIGlycT0lZCIsIGlycSk7CisgICAgICAgICAgICAgICAgTE9HRUQoRVJS T1IsIGRvbWFpbmlkLCAieGNfZG9tYWluX2lycV9wZXJtaXNzaW9uIGlycT0lZCIsIGlycSk7CiAg ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZmNsb3NlKGYpOwpAQCAtMTQ2NSwxMCAr MTQ3MCwxMCBAQCBvdXQ6CiAgICAgICAgIGxpYnhsX19kZXZpY2VfcGNpX3Jlc2V0KGdjLCBwY2lk ZXYtPmRvbWFpbiwgcGNpZGV2LT5idXMsIHBjaWRldi0+ZGV2LCBwY2lkZXYtPmZ1bmMpOwogICAg IH0KIAotICAgIGlmICghbGlieGxfaXNfc3R1YmRvbShjdHgsIGRvbWlkLCBOVUxMKSkgeworICAg IGlmICghaXNzdHViZG9tKSB7CiAgICAgICAgIHJjID0geGNfZGVhc3NpZ25fZGV2aWNlKGN0eC0+ eGNoLCBkb21pZCwgcGNpZGV2X2VuY29kZV9iZGYocGNpZGV2KSk7CiAgICAgICAgIGlmIChyYyA8 IDAgJiYgKGh2bSB8fCBlcnJubyAhPSBFTk9TWVMpKQotICAgICAgICAgICAgTE9HRShFUlJPUiwg InhjX2RlYXNzaWduX2RldmljZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIExPR0VEKEVSUk9SLCBk b21haW5pZCwgInhjX2RlYXNzaWduX2RldmljZSBmYWlsZWQiKTsKICAgICB9CiAKICAgICBzdHVi ZG9taWQgPSBsaWJ4bF9nZXRfc3R1YmRvbV9pZChjdHgsIGRvbWlkKTsKQEAgLTE2NTUsMTcgKzE2 NjAsMTcgQEAgaW50IGxpYnhsX19ncmFudF92Z2FfaW9tZW1fcGVybWlzc2lvbihsaWJ4bF9fZ2Mg KmdjLCBjb25zdCB1aW50MzJfdCBkb21pZCwKIAogICAgICAgICBGSUxFICpmID0gZm9wZW4ocGNp X2RldmljZV9jbGFzc19wYXRoLCAiciIpOwogICAgICAgICBpZiAoIWYpIHsKLSAgICAgICAgICAg IExPR0UoRVJST1IsCi0gICAgICAgICAgICAgICAgICJwY2kgZGV2aWNlICJQQ0lfQkRGIiBkb2Vz IG5vdCBoYXZlIGNsYXNzIGF0dHJpYnV0ZSIsCi0gICAgICAgICAgICAgICAgIHBjaWRldi0+ZG9t YWluLCBwY2lkZXYtPmJ1cywgcGNpZGV2LT5kZXYsIHBjaWRldi0+ZnVuYyk7CisgICAgICAgICAg ICBMT0dFRChFUlJPUiwgZG9taWQsCisgICAgICAgICAgICAgICAgICAicGNpIGRldmljZSAiUENJ X0JERiIgZG9lcyBub3QgaGF2ZSBjbGFzcyBhdHRyaWJ1dGUiLAorICAgICAgICAgICAgICAgICAg cGNpZGV2LT5kb21haW4sIHBjaWRldi0+YnVzLCBwY2lkZXYtPmRldiwgcGNpZGV2LT5mdW5jKTsK ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIHJlYWRfaXRlbXMgPSBm c2NhbmYoZiwgIjB4JWx4XG4iLCAmcGNpX2RldmljZV9jbGFzcyk7CiAgICAgICAgIGZjbG9zZShm KTsKICAgICAgICAgaWYgKHJlYWRfaXRlbXMgIT0gMSkgewotICAgICAgICAgICAgTE9HRShFUlJP UiwKLSAgICAgICAgICAgICAgICAgImNhbm5vdCByZWFkIGNsYXNzIG9mIHBjaSBkZXZpY2UgIlBD SV9CREYsCi0gICAgICAgICAgICAgICAgIHBjaWRldi0+ZG9tYWluLCBwY2lkZXYtPmJ1cywgcGNp ZGV2LT5kZXYsIHBjaWRldi0+ZnVuYyk7CisgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9taWQs CisgICAgICAgICAgICAgICAgICAiY2Fubm90IHJlYWQgY2xhc3Mgb2YgcGNpIGRldmljZSAiUENJ X0JERiwKKyAgICAgICAgICAgICAgICAgIHBjaWRldi0+ZG9tYWluLCBwY2lkZXYtPmJ1cywgcGNp ZGV2LT5kZXYsIHBjaWRldi0+ZnVuYyk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg fQogICAgICAgICBpZiAocGNpX2RldmljZV9jbGFzcyAhPSAweDAzMDAwMCkgLyogVkdBIGNsYXNz ICovCkBAIC0xNjc1LDIwICsxNjgwLDIwIEBAIGludCBsaWJ4bF9fZ3JhbnRfdmdhX2lvbWVtX3Bl cm1pc3Npb24obGlieGxfX2djICpnYywgY29uc3QgdWludDMyX3QgZG9taWQsCiAgICAgICAgIHJl dCA9IHhjX2RvbWFpbl9pb21lbV9wZXJtaXNzaW9uKENUWC0+eGNoLCBzdHViZG9tX2RvbWlkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Z2FfaW9tZW1fc3RhcnQs IDB4MjAsIDEpOwogICAgICAgICBpZiAocmV0IDwgMCkgewotICAgICAgICAgICAgTE9HRShFUlJP UiwKLSAgICAgICAgICAgICAgICAgImZhaWxlZCB0byBnaXZlIHN0dWJkb20lZCBhY2Nlc3MgdG8g aW9tZW0gcmFuZ2UgIgotICAgICAgICAgICAgICAgICAiJSJQUkl4NjQiLSUiUFJJeDY0IiBmb3Ig VkdBIHBhc3N0aHJ1IiwKLSAgICAgICAgICAgICAgICAgc3R1YmRvbV9kb21pZCwKLSAgICAgICAg ICAgICAgICAgdmdhX2lvbWVtX3N0YXJ0LCAodmdhX2lvbWVtX3N0YXJ0ICsgMHgyMCAtIDEpKTsK KyAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICJmYWls ZWQgdG8gZ2l2ZSBzdHViZG9tJWQgYWNjZXNzIHRvIGlvbWVtIHJhbmdlICIKKyAgICAgICAgICAg ICAgICAgICIlIlBSSXg2NCItJSJQUkl4NjQiIGZvciBWR0EgcGFzc3RocnUiLAorICAgICAgICAg ICAgICAgICAgc3R1YmRvbV9kb21pZCwKKyAgICAgICAgICAgICAgICAgIHZnYV9pb21lbV9zdGFy dCwgKHZnYV9pb21lbV9zdGFydCArIDB4MjAgLSAxKSk7CiAgICAgICAgICAgICByZXR1cm4gcmV0 OwogICAgICAgICB9CiAgICAgICAgIHJldCA9IHhjX2RvbWFpbl9pb21lbV9wZXJtaXNzaW9uKENU WC0+eGNoLCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmdhX2lvbWVtX3N0YXJ0LCAweDIwLCAxKTsKICAgICAgICAgaWYgKHJldCA8IDApIHsKLSAgICAg ICAgICAgIExPR0UoRVJST1IsCi0gICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gZ2l2ZSBkb20l ZCBhY2Nlc3MgdG8gaW9tZW0gcmFuZ2UgIgotICAgICAgICAgICAgICAgICAiJSJQUkl4NjQiLSUi UFJJeDY0IiBmb3IgVkdBIHBhc3N0aHJ1IiwKLSAgICAgICAgICAgICAgICAgZG9taWQsIHZnYV9p b21lbV9zdGFydCwgKHZnYV9pb21lbV9zdGFydCArIDB4MjAgLSAxKSk7CisgICAgICAgICAgICBM T0dFRChFUlJPUiwgZG9taWQsCisgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGdpdmUgZG9t JWQgYWNjZXNzIHRvIGlvbWVtIHJhbmdlICIKKyAgICAgICAgICAgICAgICAgICIlIlBSSXg2NCIt JSJQUkl4NjQiIGZvciBWR0EgcGFzc3RocnUiLAorICAgICAgICAgICAgICAgICAgZG9taWQsIHZn YV9pb21lbV9zdGFydCwgKHZnYV9pb21lbV9zdGFydCArIDB4MjAgLSAxKSk7CiAgICAgICAgICAg ICByZXR1cm4gcmV0OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwotLSAKMi4xMC4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==