From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Subject: [PATCH v3 05/17] libxl: Handle Linux stubdomain specific QEMU options. Date: Mon, 28 Jan 2019 22:30:22 +0100 Message-ID: <060e89a5cca415871c19d05853a31e7d7bc7f6cc.1548710973.git-series.marmarek@invisiblethingslab.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1goEUX-0001oq-2E for xen-devel@lists.xenproject.org; Mon, 28 Jan 2019 21:30:53 +0000 In-Reply-To: In-Reply-To: References: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Simon Gaiser , Wei Liu , Ian Jackson , =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Eric Shelton List-Id: xen-devel@lists.xenproject.org RnJvbTogRXJpYyBTaGVsdG9uIDxlc2hlbHRvbkBwb2JveC5jb20+CgpUaGlzIHBhdGNoIGNyZWF0 ZXMgYW4gYXBwcm9wcmlhdGUgY29tbWFuZCBsaW5lIGZvciB0aGUgUUVNVSBpbnN0YW5jZQpydW5u aW5nIGluIGEgTGludXgtYmFzZWQgc3R1YmRvbWFpbi4KCk5PVEU6IGEgbnVtYmVyIG9mIGl0ZW1z IGFyZSBub3QgY3VycmVudGx5IGltcGxlbWVudGVkIGZvciBMaW51eC1iYXNlZApzdHViZG9tYWlu cywgc3VjaCBhczoKLSBzYXZlL3Jlc3RvcmUKLSBRTVAgc29ja2V0Ci0gZ3JhcGhpY3Mgb3V0cHV0 IChlLmcuLCBWTkMpCgpTaWduZWQtb2ZmLWJ5OiBFcmljIFNoZWx0b24gPGVzaGVsdG9uQHBvYm94 LmNvbT4KClNpbW9uOgogKiBmaXggZGlzayBwYXRoCiAqIGZpeCBjZHJvbSBwYXRoIGFuZCAiZm9y bWF0IgogKiBwYXNzIGRvd25zY3JpcHQgZm9yIG5ldHdvcmsgaW50ZXJmYWNlcwoKU2lnbmVkLW9m Zi1ieTogU2ltb24gR2Fpc2VyIDxzaW1vbkBpbnZpc2libGV0aGluZ3NsYWIuY29tPgpbZHJvcCBR dWJlcy1zcGVjaWZpYyBwYXJ0c10KU2lnbmVkLW9mZi1ieTogTWFyZWsgTWFyY3p5a293c2tpLUfD s3JlY2tpIDxtYXJtYXJla0BpbnZpc2libGV0aGluZ3NsYWIuY29tPgotLS0KQ2hhbmdlcyBpbiB2 MjoKIC0gZml4IHNlcmlhbCBzcGVjaWZpZWQgd2l0aCBzZXJpYWw9WyAuLi4gXSBzeW50YXgKIC0g ZXJyb3Igb3V0IG9uIG11bHRpcGxlIGNvbnNvbGVzIChpbmNvbXBhdGlibGUgd2l0aCBzdHViZG9t KQogLSBkcm9wIGVycm9uZW91cyBjaHVuayBhYm91dCBjZHJvbQpDaGFuZ2VzIGluIHYzOgogLSBj aGFuZ2UgdG8gdXNlIGxpYnhsX19zdHViZG9tYWluX2lzX2xpbnV4IGluc3RlYWQgb2YKICAgYl9p bmZvLT5zdHViZG9tYWluX3ZlcnNpb24KIC0gZHJvcCBsaWJ4bF9fc3R1YmRvbWFpbl92ZXJzaW9u X3J1bm5pbmcsIHByZWZlcgogICBsaWJ4bF9fc3R1YmRvbWFpbl9pc19saW51eF9ydW5uaW5nIGlu dHJvZHVjZWQgYnkgcHJldmlvdXMgcGF0Y2gKIC0gZHJvcCBpZnVwL2lmZG93biBzY3JpcHQgLSBz dHViZG9tYWluIHdpbGwgaGFuZGxlIHRoYXQgd2l0aCBxZW11CiAgIGV2ZW50cyBpdHNlbGYKIC0g c2xpZ2h0bHkgc2ltcGxpZnkgLXNlcmlhbCBhcmd1bWVudAogLSBhZGQgc3VwcG9ydCBmb3IgbXVs dGlwbGUgc2VyaWFsIGNvbnNvbGVzLCBkbyBub3QgaWdub3JlCiAgIGJfaW5mby51LnNlcmlhbChf bGlzdCkKIC0gYWRkIGVycm9yIGNoZWNraW5nIGZvciBtb3JlIHRoYW4gMjYgZW11bGF0ZWQgZGlz a3MgKCIvZGV2L3h2ZCVjIgogICBmb3JtYXQgc3RyaW5nKQotLS0KIHRvb2xzL2xpYnhsL2xpYnhs X2NyZWF0ZS5jICAgfCAgNDAgKysrKysrKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2RtLmMgICAgICAg fCAxNzYgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB0b29scy9saWJ4bC9s aWJ4bF9pbnRlcm5hbC5oIHwgICAxICstCiB0b29scy9saWJ4bC9saWJ4bF9tZW0uYyAgICAgIHwg ICA2ICstCiB0b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgIHwgICAzICstCiA1IGZpbGVzIGNo YW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90 b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCmlu ZGV4IGJiNjI1NDIuLjEzZmMzMDQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0 ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCkBAIC0xNjAsNiArMTYwLDMxIEBA IGludCBsaWJ4bF9fZG9tYWluX2J1aWxkX2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAog ICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKGJfaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5f VFlQRV9IVk0gJiYKKyAgICAgICAgbGlieGxfZGVmYm9vbF92YWwoYl9pbmZvLT5kZXZpY2VfbW9k ZWxfc3R1YmRvbWFpbikpIHsKKyAgICAgICAgaWYgKCFiX2luZm8tPnN0dWJkb21haW5fa2VybmVs KSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJfaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24pIHsK KyAgICAgICAgICAgICAgICBjYXNlIExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVO X1RSQURJVElPTkFMOgorICAgICAgICAgICAgICAgICAgICBiX2luZm8tPnN0dWJkb21haW5fa2Vy bmVsID0KKyAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19hYnNfcGF0aChOT0dDLCAiaW9l bXUtc3R1YmRvbS5neiIsIGxpYnhsX194ZW5maXJtd2FyZWRpcl9wYXRoKCkpOworICAgICAgICAg ICAgICAgICAgICBiX2luZm8tPnN0dWJkb21haW5fcmFtZGlzayA9IE5VTEw7CisgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTElCWExfREVWSUNFX01PREVM X1ZFUlNJT05fUUVNVV9YRU46CisgICAgICAgICAgICAgICAgICAgIGJfaW5mby0+c3R1YmRvbWFp bl9rZXJuZWwgPQorICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Fic19wYXRoKE5PR0Ms CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHViZG9tLWxpbnV4LWtlcm5lbCIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194ZW5maXJtd2FyZWRpcl9w YXRoKCkpOworICAgICAgICAgICAgICAgICAgICBiX2luZm8tPnN0dWJkb21haW5fcmFtZGlzayA9 CisgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fYWJzX3BhdGgoTk9HQywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInN0dWJkb20tbGludXgtcm9vdGZzIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3hlbmZpcm13YXJlZGlyX3BhdGgoKSk7Cisg ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg ICAgICAgICAgICAgICAgIGFib3J0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9 CisKICAgICBpZiAoIWJfaW5mby0+bWF4X3ZjcHVzKQogICAgICAgICBiX2luZm8tPm1heF92Y3B1 cyA9IDE7CiAgICAgaWYgKCFiX2luZm8tPmF2YWlsX3ZjcHVzLnNpemUpIHsKQEAgLTE5NSw2ICsy MjAsMTcgQEAgaW50IGxpYnhsX19kb21haW5fYnVpbGRfaW5mb19zZXRkZWZhdWx0KGxpYnhsX19n YyAqZ2MsCiAgICAgaWYgKGJfaW5mby0+dGFyZ2V0X21lbWtiID09IExJQlhMX01FTUtCX0RFRkFV TFQpCiAgICAgICAgIGJfaW5mby0+dGFyZ2V0X21lbWtiID0gYl9pbmZvLT5tYXhfbWVta2I7CiAK KyAgICBpZiAoYl9pbmZvLT5zdHViZG9tYWluX21lbWtiID09IExJQlhMX01FTUtCX0RFRkFVTFQp IHsKKyAgICAgICAgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKGJfaW5mby0+ZGV2aWNlX21vZGVsX3N0 dWJkb21haW4pKSB7CisgICAgICAgICAgICBpZiAobGlieGxfX3N0dWJkb21haW5faXNfbGludXgo Yl9pbmZvKSkKKyAgICAgICAgICAgICAgICBiX2luZm8tPnN0dWJkb21haW5fbWVta2IgPSBMSUJY TF9MSU5VWF9TVFVCRE9NX01FTSAqIDEwMjQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg ICAgICAgYl9pbmZvLT5zdHViZG9tYWluX21lbWtiID0gMjggKiAxMDI0OyAvLyBNaW5pT1MKKyAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJfaW5mby0+c3R1YmRvbWFpbl9tZW1rYiA9IDA7 IC8vIG5vIHN0dWJkb21haW4KKyAgICAgICAgfQorICAgIH0KKwogICAgIGxpYnhsX2RlZmJvb2xf c2V0ZGVmYXVsdCgmYl9pbmZvLT5jbGFpbV9tb2RlLCBmYWxzZSk7CiAKICAgICBsaWJ4bF9kZWZi b29sX3NldGRlZmF1bHQoJmJfaW5mby0+bG9jYWx0aW1lLCBmYWxzZSk7CkBAIC0xNTM4LDcgKzE1 NzQsOSBAQCBzdGF0aWMgdm9pZCBkb21jcmVhdGVfZGV2bW9kZWxfc3RhcnRlZChsaWJ4bF9fZWdj ICplZ2MsCiAgICAgaWYgKGRjcy0+c2Rzcy5kbS5ndWVzdF9kb21pZCkgewogICAgICAgICBpZiAo ZF9jb25maWctPmJfaW5mby5kZXZpY2VfbW9kZWxfdmVyc2lvbgogICAgICAgICAgICAgPT0gTElC WExfREVWSUNFX01PREVMX1ZFUlNJT05fUUVNVV9YRU4pIHsKLSAgICAgICAgICAgIGxpYnhsX19x bXBfaW5pdGlhbGl6YXRpb25zKGdjLCBkb21pZCwgZF9jb25maWcpOworICAgICAgICAgICAgaWYg KCFsaWJ4bF9kZWZib29sX3ZhbChkX2NvbmZpZy0+Yl9pbmZvLmRldmljZV9tb2RlbF9zdHViZG9t YWluKSkgeworICAgICAgICAgICAgICAgIGxpYnhsX19xbXBfaW5pdGlhbGl6YXRpb25zKGdjLCBk b21pZCwgZF9jb25maWcpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwpp bmRleCAzNjAxYjE0Li4xZmE0ZmE4IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kbS5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTExNjksNiArMTE2OSw3IEBAIHN0YXRp YyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAog ICAgIGludCBpLCBjb25uZWN0aW9uLCBkZXZpZDsKICAgICB1aW50NjRfdCByYW1fc2l6ZTsKICAg ICBjb25zdCBjaGFyICpwYXRoLCAqY2hhcmRldjsKKyAgICBib29sIGlzX3N0dWJkb20gPSBsaWJ4 bF9kZWZib29sX3ZhbChiX2luZm8tPmRldmljZV9tb2RlbF9zdHViZG9tYWluKTsKIAogICAgIGRt X2FyZ3MgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwogICAgIGRtX2VudnMgPSBmbGV4YXJy YXlfbWFrZShnYywgMTYsIDEpOwpAQCAtMTE3OSwzMCArMTE4MCwzMyBAQCBzdGF0aWMgaW50IGxp YnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKICAgICAgICAg ICAgICAgICAgICAgICAiLXhlbi1kb21pZCIsCiAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJ TlRGKCIlZCIsIGd1ZXN0X2RvbWlkKSwgTlVMTCk7CiAKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGRt X2FyZ3MsICItY2hhcmRldiIpOwotICAgIGlmIChzdGF0ZS0+ZG1fbW9uaXRvcl9mZCA+PSAwKSB7 Ci0gICAgICAgIGZsZXhhcnJheV9hcHBlbmQoZG1fYXJncywKLSAgICAgICAgICAgIEdDU1BSSU5U Rigic29ja2V0LGlkPWxpYnhsLWNtZCxmZD0lZCxzZXJ2ZXIsbm93YWl0IiwKLSAgICAgICAgICAg ICAgICAgICAgICBzdGF0ZS0+ZG1fbW9uaXRvcl9mZCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg IGZsZXhhcnJheV9hcHBlbmQoZG1fYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQ UklOVEYoInNvY2tldCxpZD1saWJ4bC1jbWQsIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicGF0aD0lcyxzZXJ2ZXIsbm93YWl0IiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX3FlbXVfcW1wX3BhdGgoZ2MsIGd1ZXN0X2RvbWlkKSkpOwotICAg IH0KKyAgICAvKiBUaGVyZSBpcyBjdXJyZW50bHkgbm8gd2F5IHRvIGFjY2VzcyB0aGUgUU1QIHNv Y2tldCBpbiB0aGUgc3R1YmRvbSAqLworICAgIGlmICghaXNfc3R1YmRvbSkgeworICAgICAgICBm bGV4YXJyYXlfYXBwZW5kKGRtX2FyZ3MsICItY2hhcmRldiIpOworICAgICAgICBpZiAoc3RhdGUt PmRtX21vbml0b3JfZmQgPj0gMCkgeworICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9h cmdzLAorICAgICAgICAgICAgICAgIEdDU1BSSU5URigic29ja2V0LGlkPWxpYnhsLWNtZCxmZD0l ZCxzZXJ2ZXIsbm93YWl0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmRtX21v bml0b3JfZmQpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZsZXhhcnJheV9hcHBl bmQoZG1fYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCJzb2Nr ZXQsaWQ9bGlieGwtY21kLCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJwYXRoPSVzLHNlcnZlcixub3dhaXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX3FlbXVfcW1wX3BhdGgoZ2MsIGd1ZXN0X2RvbWlkKSkpOworICAgICAg ICB9CiAKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGRtX2FyZ3MsICItbm8tc2h1dGRvd24iKTsKLSAg ICBmbGV4YXJyYXlfYXBwZW5kKGRtX2FyZ3MsICItbW9uIik7Ci0gICAgZmxleGFycmF5X2FwcGVu ZChkbV9hcmdzLCAiY2hhcmRldj1saWJ4bC1jbWQsbW9kZT1jb250cm9sIik7CisgICAgICAgIGZs ZXhhcnJheV9hcHBlbmQoZG1fYXJncywgIi1uby1zaHV0ZG93biIpOworICAgICAgICBmbGV4YXJy YXlfYXBwZW5kKGRtX2FyZ3MsICItbW9uIik7CisgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoZG1f YXJncywgImNoYXJkZXY9bGlieGwtY21kLG1vZGU9Y29udHJvbCIpOwogCi0gICAgZmxleGFycmF5 X2FwcGVuZChkbV9hcmdzLCAiLWNoYXJkZXYiKTsKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGRtX2Fy Z3MsCi0gICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoInNvY2tldCxpZD1saWJ4ZW5zdGF0 LWNtZCwiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGF0aD0lcy9xbXAt bGlieGVuc3RhdC0lZCxzZXJ2ZXIsbm93YWl0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX19ydW5fZGlyX3BhdGgoKSwgZ3Vlc3RfZG9taWQpKTsKKyAgICAgICAg ZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCAiLWNoYXJkZXYiKTsKKyAgICAgICAgZmxleGFycmF5 X2FwcGVuZChkbV9hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigic29j a2V0LGlkPWxpYnhlbnN0YXQtY21kLCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicGF0aD0lcy9xbXAtbGlieGVuc3RhdC0lZCxzZXJ2ZXIsbm93YWl0IiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fcnVuX2Rpcl9wYXRoKCks IGd1ZXN0X2RvbWlkKSk7CiAKLSAgICBmbGV4YXJyYXlfYXBwZW5kKGRtX2FyZ3MsICItbW9uIik7 Ci0gICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCAiY2hhcmRldj1saWJ4ZW5zdGF0LWNtZCxt b2RlPWNvbnRyb2wiKTsKKyAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCAiLW1vbiIp OworICAgICAgICBmbGV4YXJyYXlfYXBwZW5kKGRtX2FyZ3MsICJjaGFyZGV2PWxpYnhlbnN0YXQt Y21kLG1vZGU9Y29udHJvbCIpOworICAgIH0KIAogICAgIGZvciAoaSA9IDA7IGkgPCBndWVzdF9j b25maWctPm51bV9jaGFubmVsczsgaSsrKSB7CiAgICAgICAgIGNvbm5lY3Rpb24gPSBndWVzdF9j b25maWctPmNoYW5uZWxzW2ldLmNvbm5lY3Rpb247CkBAIC0xMjQ2LDcgKzEyNTAsNyBAQCBzdGF0 aWMgaW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywK ICAgICAgICAgZmxleGFycmF5X3ZhcHBlbmQoZG1fYXJncywgIi1uYW1lIiwgY19pbmZvLT5uYW1l LCBOVUxMKTsKICAgICB9CiAKLSAgICBpZiAodm5jKSB7CisgICAgaWYgKHZuYyAmJiAhaXNfc3R1 YmRvbSkgewogICAgICAgICBjaGFyICp2bmNhcmcgPSBOVUxMOwogCiAgICAgICAgIGZsZXhhcnJh eV9hcHBlbmQoZG1fYXJncywgIi12bmMiKTsKQEAgLTEyODUsNyArMTI4OSw3IEBAIHN0YXRpYyBp bnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAg ICAgICB9CiAKICAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCB2bmNhcmcpOwotICAg IH0gZWxzZQorICAgIH0gZWxzZSBpZiAoIWlzX3N0dWJkb20pCiAgICAgICAgIC8qCiAgICAgICAg ICAqIEVuc3VyZSB0aGF0IGJ5IGRlZmF1bHQgbm8gdm5jIHNlcnZlciBpcyBjcmVhdGVkLgogICAg ICAgICAgKi8KQEAgLTEyOTcsNyArMTMwMSw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2Rl dmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAqLwogICAgIGZsZXhhcnJh eV9hcHBlbmRfcGFpcihkbV9hcmdzLCAiLWRpc3BsYXkiLCAibm9uZSIpOwogCi0gICAgaWYgKHNk bCkgeworICAgIGlmIChzZGwgJiYgIWlzX3N0dWJkb20pIHsKICAgICAgICAgZmxleGFycmF5X2Fw cGVuZChkbV9hcmdzLCAiLXNkbCIpOwogICAgICAgICBpZiAoc2RsLT5kaXNwbGF5KQogICAgICAg ICAgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGRtX2VudnMsICJESVNQTEFZIiwgc2RsLT5kaXNw bGF5KTsKQEAgLTEzMzksMTggKzEzNDMsMzQgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2 aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgTE9HRChFUlJPUiwgZ3Vlc3RfZG9taWQsICJCb3RoIHNlcmlhbCBhbmQgc2VyaWFs X2xpc3Qgc2V0Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0lOVkFMOwotICAgICAg ICAgICAgfQotICAgICAgICAgICAgaWYgKGJfaW5mby0+dS5odm0uc2VyaWFsKSB7Ci0gICAgICAg ICAgICAgICAgZmxleGFycmF5X3ZhcHBlbmQoZG1fYXJncywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiLXNlcmlhbCIsIGJfaW5mby0+dS5odm0uc2VyaWFsLCBOVUxMKTsKLSAg ICAgICAgICAgIH0gZWxzZSBpZiAoYl9pbmZvLT51Lmh2bS5zZXJpYWxfbGlzdCkgewotICAgICAg ICAgICAgICAgIGNoYXIgKipwOwotICAgICAgICAgICAgICAgIGZvciAocCA9IGJfaW5mby0+dS5o dm0uc2VyaWFsX2xpc3Q7Ci0gICAgICAgICAgICAgICAgICAgICAqcDsKLSAgICAgICAgICAgICAg ICAgICAgIHArKykgewotICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfdmFwcGVuZChkbV9h cmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXNlcmlhbCIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwLCBOVUxMKTsKKyAgICAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGJfaW5mby0+dS5odm0uc2VyaWFsKSB7 CisgICAgICAgICAgICAgICAgICAgIGlmIChpc19zdHViZG9tKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICAvKiBzZWUgc3Bhd25fc3R1Yl9sYXVuY2hfZG0oKSBmb3IgY29ubmVjdGluZyBTVFVC RE9NX0NPTlNPTEVfU0VSSUFMICovCisgICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlf dmFwcGVuZChkbV9hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIi1zZXJpYWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0NTUFJJTlRGKCIvZGV2L2h2YyVkIiwgU1RVQkRPTV9DT05TT0xFX1NFUklBTCksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV92YXBwZW5k KGRtX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXNl cmlhbCIsIGJfaW5mby0+dS5odm0uc2VyaWFsLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYl9pbmZvLT51Lmh2bS5zZXJpYWxfbGlzdCkg eworICAgICAgICAgICAgICAgICAgICBjaGFyICoqcDsKKyAgICAgICAgICAgICAgICAgICAgLyog c2VlIHNwYXduX3N0dWJfbGF1bmNoX2RtKCkgZm9yIGNvbm5lY3RpbmcgU1RVQkRPTV9DT05TT0xF X1NFUklBTCAqLworICAgICAgICAgICAgICAgICAgICBmb3IgKHAgPSBiX2luZm8tPnUuaHZtLnNl cmlhbF9saXN0LCBpID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAqcDsKKyAgICAgICAg ICAgICAgICAgICAgICAgICBwKyssIGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGlzX3N0dWJkb20pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X3ZhcHBl bmQoZG1fYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiLXNlcmlhbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0NTUFJJTlRGKCIvZGV2L2h2YyVkIiwgU1RVQkRPTV9DT05TT0xFX1NFUklBTCArIGkpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAg ICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZs ZXhhcnJheV92YXBwZW5kKGRtX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIi1zZXJpYWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICpwLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTM1OSw3ICsxMzc5LDcg QEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19n YyAqZ2MsCiAgICAgICAgICAgICBmbGV4YXJyYXlfYXBwZW5kKGRtX2FyZ3MsICItbm9ncmFwaGlj Iik7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobGlieGxfZGVmYm9vbF92YWwoYl9pbmZvLT51 Lmh2bS5zcGljZS5lbmFibGUpKSB7CisgICAgICAgIGlmIChsaWJ4bF9kZWZib29sX3ZhbChiX2lu Zm8tPnUuaHZtLnNwaWNlLmVuYWJsZSkgJiYgIWlzX3N0dWJkb20pIHsKICAgICAgICAgICAgIGNv bnN0IGxpYnhsX3NwaWNlX2luZm8gKnNwaWNlID0gJmJfaW5mby0+dS5odm0uc3BpY2U7CiAgICAg ICAgICAgICBjaGFyICpzcGljZW9wdGlvbnMgPSBkbV9zcGljZV9vcHRpb25zKGdjLCBzcGljZSk7 CiAgICAgICAgICAgICBpZiAoIXNwaWNlb3B0aW9ucykKQEAgLTE3ODQsNyArMTgwNCw5IEBAIHN0 YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdj LAogICAgICAgICAgICAgICogSWYgcWVtdSBpc24ndCBkb2luZyB0aGUgaW50ZXJwcmV0aW5nLCB0 aGUgcGFyYW1ldGVyIGlzCiAgICAgICAgICAgICAgKiBhbHdheXMgcmF3CiAgICAgICAgICAgICAg Ki8KLSAgICAgICAgICAgIGlmIChkaXNrc1tpXS5iYWNrZW5kID09IExJQlhMX0RJU0tfQkFDS0VO RF9RRElTSykKKyAgICAgICAgICAgIGlmIChsaWJ4bF9kZWZib29sX3ZhbChiX2luZm8tPmRldmlj ZV9tb2RlbF9zdHViZG9tYWluKSkKKyAgICAgICAgICAgICAgICBmb3JtYXQgPSAiaG9zdF9kZXZp Y2UiOworICAgICAgICAgICAgZWxzZSBpZiAoZGlza3NbaV0uYmFja2VuZCA9PSBMSUJYTF9ESVNL X0JBQ0tFTkRfUURJU0spCiAgICAgICAgICAgICAgICAgZm9ybWF0ID0gbGlieGxfX3FlbXVfZGlz a19mb3JtYXRfc3RyaW5nKGRpc2tzW2ldLmZvcm1hdCk7CiAgICAgICAgICAgICBlbHNlCiAgICAg ICAgICAgICAgICAgZm9ybWF0ID0gbGlieGxfX3FlbXVfZGlza19mb3JtYXRfc3RyaW5nKExJQlhM X0RJU0tfRk9STUFUX1JBVyk7CkBAIC0xNzk1LDYgKzE4MTcsMTYgQEAgc3RhdGljIGludCBsaWJ4 bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgZGlza3NbaV0udmRldik7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAobGlieGxfZGVm Ym9vbF92YWwoYl9pbmZvLT5kZXZpY2VfbW9kZWxfc3R1YmRvbWFpbikpIHsKKyAgICAgICAgICAg ICAgICBpZiAoZGlzayA+ICd6JyAtICdhJykgeworICAgICAgICAgICAgICAgICAgICBMT0dEKFdB Uk4sIGd1ZXN0X2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbXVsYXRpb24g b2Ygb25seSBmaXJzdCAlZCBkaXNrcyBpcyBzdXBwb3J0ZWQgd2l0aCBxZW11LXhlbiBpbiBzdHVi ZG9tYWluLlxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEaXNrICVkIHdpbGwgYmUg YXZhaWxhYmxlIHZpYSBQViBkcml2ZXJzIGJ1dCBub3QgYXMgYW4gZW11bGF0ZWQgZGlzay4iLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd6JyAtICdhJywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkaXNrKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldF9wYXRoID0gR0NTUFJJTlRGKCIvZGV2 L3h2ZCVjIiwgJ2EnICsgZGlzayk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg ICAgIGlmIChmb3JtYXQgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgICAgICBMT0dEKFdBUk4s IGd1ZXN0X2RvbWlkLApAQCAtMTk0Niw3ICsxOTc4LDcgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVp bGRfZGV2aWNlX21vZGVsX2FyZ3MobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGFyICoqKmFyZ3MsIGNoYXIgKioqZW52cywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9fZG9tYWluX2J1aWxk X3N0YXRlICpzdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgKmRtX3N0YXRlX2ZkKQotLyogZG1fc3RhdGVfZmQgbWF5IGJlIE5VTEwgaWZmIGNhbGxlciBr bm93cyB3ZSBhcmUgdXNpbmcgb2xkIHN0dWJkb20KKy8qIGRtX3N0YXRlX2ZkIG1heSBiZSBOVUxM IGlmZiBjYWxsZXIga25vd3Mgd2UgYXJlIHVzaW5nIHN0dWJkb20KICAqIGFuZCB0aGVyZWZvcmUg d2lsbCBiZSBwYXNzaW5nIGEgZmlsZW5hbWUgcmF0aGVyIHRoYW4gYSBmZC4gKi8KIHsKICAgICBz d2l0Y2ggKGd1ZXN0X2NvbmZpZy0+Yl9pbmZvLmRldmljZV9tb2RlbF92ZXJzaW9uKSB7CkBAIC0x OTU2LDggKzE5ODgsMTAgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2Fy Z3MobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJncywgZW52cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdGUpOwogICAgIGNhc2UgTElCWExfREVWSUNFX01PREVMX1ZF UlNJT05fUUVNVV9YRU46Ci0gICAgICAgIGFzc2VydChkbV9zdGF0ZV9mZCAhPSBOVUxMKTsKLSAg ICAgICAgYXNzZXJ0KCpkbV9zdGF0ZV9mZCA8IDApOworICAgICAgICBpZiAoIWxpYnhsX2RlZmJv b2xfdmFsKGd1ZXN0X2NvbmZpZy0+Yl9pbmZvLmRldmljZV9tb2RlbF9zdHViZG9tYWluKSkgewor ICAgICAgICAgICAgYXNzZXJ0KGRtX3N0YXRlX2ZkICE9IE5VTEwpOworICAgICAgICAgICAgYXNz ZXJ0KCpkbV9zdGF0ZV9mZCA8IDApOworCX0KICAgICAgICAgcmV0dXJuIGxpYnhsX19idWlsZF9k ZXZpY2VfbW9kZWxfYXJnc19uZXcoZ2MsIGRtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWVzdF9kb21pZCwgZ3Vlc3RfY29uZmlnLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLCBlbnZzLApA QCAtMjA2Miw2ICsyMDk2LDE2IEBAIHJldHJ5X3RyYW5zYWN0aW9uOgogICAgIHJldHVybiAwOwog fQogCitzdGF0aWMgaW50IGxpYnhsX19zdG9yZV9saWJ4bF9lbnRyeShsaWJ4bF9fZ2MgKmdjLCB1 aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQoreworICAgIGNoYXIgKnBhdGggPSBOVUxM OworCisgICAgcGF0aCA9IGxpYnhsX194c19saWJ4bF9wYXRoKGdjLCBkb21pZCk7CisgICAgcGF0 aCA9IGxpYnhsX19zcHJpbnRmKGdjLCAiJXMvJXMiLCBwYXRoLCBuYW1lKTsKKyAgICByZXR1cm4g bGlieGxfX3hzX3ByaW50ZihnYywgWEJUX05VTEwsIHBhdGgsICIlcyIsIHZhbHVlKTsKK30KKwog c3RhdGljIHZvaWQgZG1zc19pbml0KGxpYnhsX19kbV9zcGF3bl9zdGF0ZSAqZG1zcykKIHsKICAg ICBsaWJ4bF9fZXZfcW1wX2luaXQoJmRtc3MtPnFtcCk7CkBAIC0yMTEyLDEwICsyMTU2LDE0IEBA IHZvaWQgbGlieGxfX3NwYXduX3N0dWJfZG0obGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fc3R1Yl9k bV9zcGF3bl9zdGF0ZSAqc2RzcykKICAgICBsaWJ4bF9fZG9tYWluX2J1aWxkX3N0YXRlX2luaXQo c3R1YmRvbV9zdGF0ZSk7CiAgICAgZG1zc19pbml0KCZzZHNzLT5kbSk7CiAKLSAgICBpZiAoZ3Vl c3RfY29uZmlnLT5iX2luZm8uZGV2aWNlX21vZGVsX3ZlcnNpb24gIT0KLSAgICAgICAgTElCWExf REVWSUNFX01PREVMX1ZFUlNJT05fUUVNVV9YRU5fVFJBRElUSU9OQUwpIHsKLSAgICAgICAgcmV0 ID0gRVJST1JfSU5WQUw7Ci0gICAgICAgIGdvdG8gb3V0OworICAgIGFzc2VydChsaWJ4bF9kZWZi b29sX3ZhbChndWVzdF9jb25maWctPmJfaW5mby5kZXZpY2VfbW9kZWxfc3R1YmRvbWFpbikpOwor CisgICAgaWYgKGxpYnhsX19zdHViZG9tYWluX2lzX2xpbnV4KCZndWVzdF9jb25maWctPmJfaW5m bykpIHsKKyAgICAgICAgaWYgKGRfc3RhdGUtPnNhdmVkX3N0YXRlKSB7CisgICAgICAgICAgICBM T0coRVJST1IsICJTYXZlL1Jlc3RvcmUgbm90IHN1cHBvcnRlZCB5ZXQgd2l0aCBMaW51eCBTdHVi ZG9tLiIpOworICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAg ICAgICAgfQogICAgIH0KIAogICAgIHNkc3MtPnB2cWVtdS5ndWVzdF9kb21pZCA9IDA7CkBAIC0y MTM2LDggKzIxODQsOCBAQCB2b2lkIGxpYnhsX19zcGF3bl9zdHViX2RtKGxpYnhsX19lZ2MgKmVn YywgbGlieGxfX3N0dWJfZG1fc3Bhd25fc3RhdGUgKnNkc3MpCiAgICAgbGlieGxfZG9tYWluX2J1 aWxkX2luZm9faW5pdF90eXBlKCZkbV9jb25maWctPmJfaW5mbywgTElCWExfRE9NQUlOX1RZUEVf UFYpOwogCiAgICAgZG1fY29uZmlnLT5iX2luZm8ubWF4X3ZjcHVzID0gMTsKLSAgICBkbV9jb25m aWctPmJfaW5mby5tYXhfbWVta2IgPSAyOCAqIDEwMjQgKwotICAgICAgICBndWVzdF9jb25maWct PmJfaW5mby52aWRlb19tZW1rYjsKKyAgICBkbV9jb25maWctPmJfaW5mby5tYXhfbWVta2IgPSBn dWVzdF9jb25maWctPmJfaW5mby5zdHViZG9tYWluX21lbWtiOworICAgIGRtX2NvbmZpZy0+Yl9p bmZvLm1heF9tZW1rYiArPSBndWVzdF9jb25maWctPmJfaW5mby52aWRlb19tZW1rYjsKICAgICBk bV9jb25maWctPmJfaW5mby50YXJnZXRfbWVta2IgPSBkbV9jb25maWctPmJfaW5mby5tYXhfbWVt a2I7CiAKICAgICBkbV9jb25maWctPmJfaW5mby5tYXhfZ3JhbnRfZnJhbWVzID0gZ3Vlc3RfY29u ZmlnLT5iX2luZm8ubWF4X2dyYW50X2ZyYW1lczsKQEAgLTIxNzgsMTAgKzIyMjYsOCBAQCB2b2lk IGxpYnhsX19zcGF3bl9zdHViX2RtKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX3N0dWJfZG1fc3Bh d25fc3RhdGUgKnNkc3MpCiAgICAgICAgIGRtX2NvbmZpZy0+bnVtX3ZrYnMgPSAxOwogICAgIH0K IAotICAgIHN0dWJkb21fc3RhdGUtPnB2X2tlcm5lbC5wYXRoCi0gICAgICAgID0gbGlieGxfX2Fi c19wYXRoKGdjLCAiaW9lbXUtc3R1YmRvbS5neiIsIGxpYnhsX194ZW5maXJtd2FyZWRpcl9wYXRo KCkpOwotICAgIHN0dWJkb21fc3RhdGUtPnB2X2NtZGxpbmUgPSBHQ1NQUklOVEYoIiAtZCAlZCIs IGd1ZXN0X2RvbWlkKTsKLSAgICBzdHViZG9tX3N0YXRlLT5wdl9yYW1kaXNrLnBhdGggPSAiIjsK KyAgICBzdHViZG9tX3N0YXRlLT5wdl9rZXJuZWwucGF0aCA9IGd1ZXN0X2NvbmZpZy0+Yl9pbmZv LnN0dWJkb21haW5fa2VybmVsOworICAgIHN0dWJkb21fc3RhdGUtPnB2X3JhbWRpc2sucGF0aCA9 IGd1ZXN0X2NvbmZpZy0+Yl9pbmZvLnN0dWJkb21haW5fcmFtZGlzazsKIAogICAgIC8qIGZpeG1l OiB0aGlzIGZ1bmN0aW9uIGNhbiBsZWFrIHRoZSBzdHViZG9tIGlmIGl0IGZhaWxzICovCiAgICAg cmV0ID0gbGlieGxfX2RvbWFpbl9tYWtlKGdjLCBkbV9jb25maWcsIHN0dWJkb21fc3RhdGUsCkBA IC0yMjAxLDYgKzIyNDcsOCBAQCB2b2lkIGxpYnhsX19zcGF3bl9zdHViX2RtKGxpYnhsX19lZ2Mg KmVnYywgbGlieGxfX3N0dWJfZG1fc3Bhd25fc3RhdGUgKnNkc3MpCiAgICAgICAgIGdvdG8gb3V0 OwogICAgIH0KIAorICAgIGxpYnhsX19zdG9yZV9saWJ4bF9lbnRyeShnYywgZ3Vlc3RfZG9taWQs ICJkbS12ZXJzaW9uIiwKKyAgICAgICAgbGlieGxfZGV2aWNlX21vZGVsX3ZlcnNpb25fdG9fc3Ry aW5nKGRtX2NvbmZpZy0+Yl9pbmZvLmRldmljZV9tb2RlbF92ZXJzaW9uKSk7CiAgICAgbGlieGxf X3dyaXRlX3N0dWJfZG1hcmdzKGdjLCBkbV9kb21pZCwgZ3Vlc3RfZG9taWQsIGFyZ3MpOwogICAg IGxpYnhsX194c19wcmludGYoZ2MsIFhCVF9OVUxMLAogICAgICAgICAgICAgICAgICAgICAgR0NT UFJJTlRGKCIlcy9pbWFnZS9kZXZpY2UtbW9kZWwtZG9taWQiLApAQCAtMjIxMCw2ICsyMjU4LDE1 IEBAIHZvaWQgbGlieGxfX3NwYXduX3N0dWJfZG0obGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fc3R1 Yl9kbV9zcGF3bl9zdGF0ZSAqc2RzcykKICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigi JXMvdGFyZ2V0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfZ2V0 X2RvbXBhdGgoZ2MsIGRtX2RvbWlkKSksCiAgICAgICAgICAgICAgICAgICAgICAiJWQiLCBndWVz dF9kb21pZCk7CisgICAgaWYgKGd1ZXN0X2NvbmZpZy0+Yl9pbmZvLmRldmljZV9tb2RlbF92ZXJz aW9uID09IExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOKSB7CisgICAgICAgIC8q IHFlbXUteGVuIGlzIHVzZWQgYXMgYSBkbSBpbiB0aGUgc3R1YmRvbWFpbiwgc28gd2Ugc2V0IHRo ZSBiaW9zCisgICAgICAgICAqIGFjY3JvZGluZyB0byB0aGlzICovCisgICAgICAgIGxpYnhsX194 c19wcmludGYoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3Nw cmludGYoZ2MsICIlcy9odm1sb2FkZXIvYmlvcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIGd1ZXN0X2RvbWlkKSksCisg ICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfYmlvc190eXBlX3RvX3N0cmluZyhndWVzdF9jb25maWctPmJfaW5mby51Lmh2bS5iaW9zKSk7 CisgICAgfQogICAgIHJldCA9IHhjX2RvbWFpbl9zZXRfdGFyZ2V0KGN0eC0+eGNoLCBkbV9kb21p ZCwgZ3Vlc3RfZG9taWQpOwogICAgIGlmIChyZXQ8MCkgewogICAgICAgICBMT0dFRChFUlJPUiwg Z3Vlc3RfZG9taWQsICJzZXR0aW5nIHRhcmdldCBkb21haW4gJWQgLT4gJWQiLApAQCAtMjI5MSw2 ICsyMzQ4LDExIEBAIHN0YXRpYyB2b2lkIHNwYXduX3N0dWJfbGF1bmNoX2RtKGxpYnhsX19lZ2Mg KmVnYywKIAogICAgIGlmIChndWVzdF9jb25maWctPmJfaW5mby51Lmh2bS5zZXJpYWwpCiAgICAg ICAgIG51bV9jb25zb2xlKys7CisgICAgZWxzZSBpZiAoZ3Vlc3RfY29uZmlnLT5iX2luZm8udS5o dm0uc2VyaWFsX2xpc3QpIHsKKyAgICAgICAgY2hhciAqKnNlcmlhbCA9IGd1ZXN0X2NvbmZpZy0+ Yl9pbmZvLnUuaHZtLnNlcmlhbF9saXN0OworICAgICAgICB3aGlsZSAoKihzZXJpYWwrKykpCisg ICAgICAgICAgICBudW1fY29uc29sZSsrOworICAgIH0KIAogICAgIGNvbnNvbGUgPSBsaWJ4bF9f Y2FsbG9jKGdjLCBudW1fY29uc29sZSwgc2l6ZW9mKGxpYnhsX19kZXZpY2VfY29uc29sZSkpOwog CkBAIC0yMzI0LDggKzIzODYsMTggQEAgc3RhdGljIHZvaWQgc3Bhd25fc3R1Yl9sYXVuY2hfZG0o bGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICBjb25zb2xlW2ldLm91dHB1dCA9 CiAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoInBpcGU6JXMiLCBkX3N0YXRlLT5z YXZlZF9zdGF0ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNU VUJET01fQ09OU09MRV9TRVJJQUw6CisgICAgICAgICAgICAgICAgaWYgKGd1ZXN0X2NvbmZpZy0+ Yl9pbmZvLnUuaHZtLnNlcmlhbCkgeworICAgICAgICAgICAgICAgICAgICBjb25zb2xlW2ldLm91 dHB1dCA9IGd1ZXN0X2NvbmZpZy0+Yl9pbmZvLnUuaHZtLnNlcmlhbDsKKyAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIGZhbGwt dGhyb3VnaCAqLwogICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBjb25zb2xl W2ldLm91dHB1dCA9ICJwdHkiOworICAgICAgICAgICAgICAgIC8qIFNlcmlhbF9saXN0IGlzIHNl dCwgYXMgb3RoZXJ3aXNlIG51bV9jb25zb2xlcyB3b3VsZCBiZQorICAgICAgICAgICAgICAgICAq IHNtYWxsZXIgYW5kIGNvbnNvbGVzIDAtMiBhcmUgaGFuZGxlZCBhYm92ZS4gKi8KKyAgICAgICAg ICAgICAgICBhc3NlcnQoZ3Vlc3RfY29uZmlnLT5iX2luZm8udS5odm0uc2VyaWFsX2xpc3QpOwor ICAgICAgICAgICAgICAgIGNvbnNvbGVbaV0ub3V0cHV0ID0gZ3Vlc3RfY29uZmlnLT5iX2luZm8u dS5odm0uc2VyaWFsX2xpc3RbCisgICAgICAgICAgICAgICAgICAgIGktU1RVQkRPTV9DT05TT0xF X1NFUklBTF07CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaAppbmRleCBiOGM2OThhLi5hMjZkMzZlIDEwMDY0NAotLS0gYS90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKQEAg LTExOCw2ICsxMTgsNyBAQAogI2RlZmluZSBTVFVCRE9NX0NPTlNPTEVfUkVTVE9SRSAyCiAjZGVm aW5lIFNUVUJET01fQ09OU09MRV9TRVJJQUwgMwogI2RlZmluZSBTVFVCRE9NX1NQRUNJQUxfQ09O U09MRVMgMworI2RlZmluZSBMSUJYTF9MSU5VWF9TVFVCRE9NX01FTSAxMjgKICNkZWZpbmUgVEFQ X0RFVklDRV9TVUZGSVggIi1lbXUiCiAjZGVmaW5lIERPTUlEX1hTX1BBVEggImRvbWlkIgogI2Rl ZmluZSBJTlZBTElEX0RPTUlEIH4wCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9tZW0u YyBiL3Rvb2xzL2xpYnhsL2xpYnhsX21lbS5jCmluZGV4IDQ0OGEyYWYuLjM2ODM3N2UgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX21lbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX21l bS5jCkBAIC00NjUsOCArNDY1LDEwIEBAIGludCBsaWJ4bF9kb21haW5fbmVlZF9tZW1vcnkobGli eGxfY3R4ICpjdHgsCiAgICAgY2FzZSBMSUJYTF9ET01BSU5fVFlQRV9QVkg6CiAgICAgY2FzZSBM SUJYTF9ET01BSU5fVFlQRV9IVk06CiAgICAgICAgICpuZWVkX21lbWtiICs9IGJfaW5mby0+c2hh ZG93X21lbWtiICsgTElCWExfSFZNX0VYVFJBX01FTU9SWTsKLSAgICAgICAgaWYgKGxpYnhsX2Rl ZmJvb2xfdmFsKGJfaW5mby0+ZGV2aWNlX21vZGVsX3N0dWJkb21haW4pKQotICAgICAgICAgICAg Km5lZWRfbWVta2IgKz0gMzIgKiAxMDI0OworICAgICAgICBpZiAobGlieGxfZGVmYm9vbF92YWwo Yl9pbmZvLT5kZXZpY2VfbW9kZWxfc3R1YmRvbWFpbikpIHsKKyAgICAgICAgICAgICpuZWVkX21l bWtiICs9IGJfaW5mby0+c3R1YmRvbWFpbl9tZW1rYjsKKyAgICAgICAgICAgICpuZWVkX21lbWti ICs9IGJfaW5mby0+dmlkZW9fbWVta2I7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAg Y2FzZSBMSUJYTF9ET01BSU5fVFlQRV9QVjoKICAgICAgICAgKm5lZWRfbWVta2IgKz0gYl9pbmZv LT5zaGFkb3dfbWVta2IgKyBMSUJYTF9QVl9FWFRSQV9NRU1PUlk7CmRpZmYgLS1naXQgYS90b29s cy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKaW5k ZXggYjY4NWFjNC4uMzUwOTJmMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMu aWRsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbApAQCAtNDk4LDYgKzQ5OCw5IEBA IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVpbGRfaW5mbyIsWwog ICAgIAogICAgICgiZGV2aWNlX21vZGVsX3ZlcnNpb24iLCBsaWJ4bF9kZXZpY2VfbW9kZWxfdmVy c2lvbiksCiAgICAgKCJkZXZpY2VfbW9kZWxfc3R1YmRvbWFpbiIsIGxpYnhsX2RlZmJvb2wpLAor ICAgICgic3R1YmRvbWFpbl9tZW1rYiIsICAgTWVtS0IpLAorICAgICgic3R1YmRvbWFpbl9rZXJu ZWwiLCAgc3RyaW5nKSwKKyAgICAoInN0dWJkb21haW5fcmFtZGlzayIsIHN0cmluZyksCiAgICAg IyBpZiB5b3Ugc2V0IGRldmljZV9tb2RlbCB5b3UgbXVzdCBzZXQgZGV2aWNlX21vZGVsX3ZlcnNp b24gdG9vCiAgICAgKCJkZXZpY2VfbW9kZWwiLCAgICAgc3RyaW5nKSwKICAgICAoImRldmljZV9t b2RlbF9zc2lkcmVmIiwgdWludDMyKSwKLS0gCmdpdC1zZXJpZXMgMC45LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=