From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunyan Liu Subject: [PATCH V15 6/6] xl: add pvusb commands Date: Tue, 1 Mar 2016 16:09:47 +0800 Message-ID: <1456819787-11568-7-git-send-email-cyliu@suse.com> References: <1456819787-11568-1-git-send-email-cyliu@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1456819787-11568-1-git-send-email-cyliu@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: jgross@suse.com, wei.liu2@citrix.com, ian.campbell@citrix.com, george.dunlap@eu.citrix.com, Ian.Jackson@eu.citrix.com, Chunyan Liu , jfehlig@suse.com, Simon Cao List-Id: xen-devel@lists.xenproject.org QWRkIHB2dXNiIGNvbW1hbmRzOiB1c2JjdHJsLWF0dGFjaCwgdXNiY3RybC1kZXRhY2gsIHVzYi1s aXN0LAp1c2JkZXYtYXR0YWNoIGFuZCB1c2JkZXYtZGV0YWNoLgoKVG8gYXR0YWNoIGEgdXNiIGRl dmljZSB0byBndWVzdCB0aHJvdWdoIHB2dXNiLCBvbmUgY291bGQgZm9sbG93CmZvbGxvd2luZyBl eGFtcGxlOgoKICN4bCB1c2JjdHJsLWF0dGFjaCB0ZXN0X3ZtIHZlcnNpb249MSBwb3J0cz04Cgog I3hsIHVzYi1saXN0IHRlc3Rfdm0KIHdpbGwgc2hvdyB0aGUgdXNiIGNvbnRyb2xsZXJzIGFuZCBw b3J0IHVzYWdlIHVuZGVyIHRoZSBkb21haW4uCgogI3hsIHVzYmRldi1hdHRhY2ggdGVzdF92bSBo b3N0YnVzPTEgaG9zdGFkZHI9Mgogd2lsbCBmaW5kIHRoZSBmaXJzdCB1c2FibGUgY29udHJvbGxl cjpwb3J0LCBhbmQgYXR0YWNoIHVzYgogZGV2aWNlIHdob3NlIGJ1c251bSBpcyAxIGFuZCBkZXZu dW0gaXMgNi4KIE9uZSBjb3VsZCBhbHNvIHNwZWNpZnkgd2hpY2ggPGNvbnRyb2xsZXI+IGFuZCB3 aGljaCA8cG9ydD4uCgogI3hsIHVzYmRldi1kZXRhY2ggdGVzdF92bSAwIDEKIHdpbGwgZGV0YWNo IFVTQiBkZXZpY2UgdW5kZXIgY29udHJvbGxlciAwIHBvcnQgMS4KCiAjeGwgdXNiY3RybC1kZXRh Y2ggdGVzdF92bSBkZXZfaWQKIHdpbGwgZGVzdHJveSB0aGUgY29udHJvbGxlciB3aXRoIHNwZWNp ZmllZCBkZXZfaWQuIERldl9pZAogY2FuIGJlIHRyYWNlZCBpbiB1c2ItbGlzdCBpbmZvLgoKU2ln bmVkLW9mZi1ieTogQ2h1bnlhbiBMaXUgPGN5bGl1QHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBT aW1vbiBDYW8gPGNhb2Jvc2ltb25AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogR2VvcmdlIER1bmxh cCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgotLS0KIGRvY3MvbWFuL3hsLnBvZC4xICAgICAg ICAgfCAgMzcgKysrKysrKysrCiB0b29scy9saWJ4bC94bC5oICAgICAgICAgIHwgICA1ICsrCiB0 b29scy9saWJ4bC94bF9jbWRpbXBsLmMgIHwgMTkwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL3hsX2NtZHRhYmxlLmMgfCAgMjUgKysr KysrCiA0IGZpbGVzIGNoYW5nZWQsIDI1NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9j cy9tYW4veGwucG9kLjEgYi9kb2NzL21hbi94bC5wb2QuMQppbmRleCA0Mjc5YzdjLi5kYzYyMTNl IDEwMDY0NAotLS0gYS9kb2NzL21hbi94bC5wb2QuMQorKysgYi9kb2NzL21hbi94bC5wb2QuMQpA QCAtMTM0NSw2ICsxMzQ1LDQzIEBAIExpc3QgcGFzcy10aHJvdWdoIHBjaSBkZXZpY2VzIGZvciBh IGRvbWFpbi4KIAogPWJhY2sKIAorPWhlYWQxIFVTQiBQQVNTLVRIUk9VR0gKKworPW92ZXIgNAor Cis9aXRlbSBCPHVzYmN0cmwtYXR0YWNoPiBJPGRvbWFpbi1pZD4gSTx1c2JjdHJsLWRldmljZT4K KworQ3JlYXRlIGEgbmV3IFVTQiBjb250cm9sbGVyIGluIHRoZSBkb21haW4gc3BlY2lmaWVkIGJ5 IEk8ZG9tYWluLWlkPiwKK0k8dXNiY3RybC1kZXZpY2U+IGRlc2NyaWJlcyB0aGUgZGV2aWNlIHRv IGF0dGFjaCwgdXNpbmcgZm9ybQorQzxLRVk9VkFMVUUgS0VZPVZBTFVFIC4uLj4gd2hlcmUgQjxL RVk9VkFMVUU+IGhhcyB0aGUgc2FtZQorbWVhbmluZyBhcyB0aGUgQjx1c2JjdHJsPiBkZXNjcmlw dGlvbiBpbiB0aGUgZG9tYWluIGNvbmZpZyBmaWxlLgorU2VlIEw8eGwuY2ZnPiBmb3IgbW9yZSBp bmZvcm1hdGlvbi4KKworPWl0ZW0gQjx1c2JjdHJsLWRldGFjaD4gSTxkb21haW4taWQ+IEk8ZGV2 aWQ+CisKK0Rlc3Ryb3kgYSBVU0IgY29udHJvbGxlciBmcm9tIHRoZSBzcGVjaWZpZWQgZG9tYWlu LgorQjxkZXZpZD4gaXMgZGV2aWQgb2YgdGhlIFVTQiBjb250cm9sbGVyLgorCis9aXRlbSBCPHVz YmRldi1hdHRhY2g+IEk8ZG9tYWluLWlkPiBJPHVzYmRldi1kZXZpY2U+CisKK0hvdC1wbHVnIGEg bmV3IHBhc3MtdGhyb3VnaCBVU0IgZGV2aWNlIHRvIHRoZSBkb21haW4gc3BlY2lmaWVkIGJ5CitJ PGRvbWFpbi1pZD4sIEk8dXNiZGV2LWRldmljZT4gZGVzY3JpYmVzIHRoZSBkZXZpY2UgdG8gYXR0 YWNoLCB1c2luZworZm9ybSBDPEtFWT1WQUxVRSBLRVk9VkFMVUUgLi4uPiB3aGVyZSBCPEtFWT1W QUxVRT4gaGFzIHRoZSBzYW1lCittZWFuaW5nIGFzIHRoZSBCPHVzYmRldj4gZGVzY3JpcHRpb24g aW4gdGhlIGRvbWFpbiBjb25maWcgZmlsZS4KK1NlZSBMPHhsLmNmZz4gZm9yIG1vcmUgaW5mb3Jt YXRpb24uCisKKz1pdGVtIEI8dXNiZGV2LWRldGFjaD4gSTxkb21haW4taWQ+IEk8Y29udHJvbGxl cj1kZXZpZD4gSTxwb3J0PW51bWJlcj4KKworSG90LXVucGx1ZyBhIHByZXZpb3VzbHkgYXNzaWdu ZWQgVVNCIGRldmljZSBmcm9tIGEgZG9tYWluLgorQjxjb250cm9sbGVyPWRldmlkPiBhbmQgQjxw b3J0PW51bWJlcj4gaXMgVVNCIGNvbnRyb2xsZXI6cG9ydCBpbiBndWVzdAord2hlcmUgdGhlIFVT QiBkZXZpY2UgaXMgYXR0YWNoZWQgdG8uCisKKz1pdGVtIEI8dXNiLWxpc3Q+IEk8ZG9tYWluLWlk PgorCitMaXN0IHBhc3MtdGhyb3VnaCB1c2IgZGV2aWNlcyBmb3IgYSBkb21haW4uCisKKz1iYWNr CisKID1oZWFkMSBUTUVNCiAKID1vdmVyIDQKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsLmgg Yi90b29scy9saWJ4bC94bC5oCmluZGV4IGJkYWIxMjUuLjMwOTYyN2EgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL3hsLmgKKysrIGIvdG9vbHMvbGlieGwveGwuaApAQCAtOTIsNiArOTIsMTEgQEAg aW50IG1haW5fYmxvY2tkZXRhY2goaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKIGludCBtYWluX3Z0 cG1hdHRhY2goaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKIGludCBtYWluX3Z0cG1saXN0KGludCBh cmdjLCBjaGFyICoqYXJndik7CiBpbnQgbWFpbl92dHBtZGV0YWNoKGludCBhcmdjLCBjaGFyICoq YXJndik7CitpbnQgbWFpbl91c2JjdHJsX2F0dGFjaChpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwor aW50IG1haW5fdXNiY3RybF9kZXRhY2goaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtYWlu X3VzYmRldl9hdHRhY2goaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtYWluX3VzYmRldl9k ZXRhY2goaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtYWluX3VzYmxpc3QoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KTsKIGludCBtYWluX3VwdGltZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwog aW50IG1haW5fY2xhaW1zKGludCBhcmdjLCBjaGFyICoqYXJndik7CiBpbnQgbWFpbl90bWVtX2xp c3QoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX2Nt ZGltcGwuYyBiL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwppbmRleCA0M2Q5YTRhLi4xZWU4NjQ1 IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKKysrIGIvdG9vbHMvbGlieGwv eGxfY21kaW1wbC5jCkBAIC0zNTEyLDYgKzM1MTIsMTk2IEBAIGludCBtYWluX2NkX2luc2VydChp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgcmV0dXJuIDA7CiB9CiAKK2ludCBtYWluX3VzYmN0 cmxfYXR0YWNoKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgICB1aW50MzJfdCBkb21pZDsK KyAgICBpbnQgb3B0LCByYyA9IDA7CisgICAgbGlieGxfZGV2aWNlX3VzYmN0cmwgdXNiY3RybDsK KworICAgIFNXSVRDSF9GT1JFQUNIX09QVChvcHQsICIiLCBOVUxMLCAidXNiY3RybC1hdHRhY2gi LCAxKSB7CisgICAgICAgIC8qIE5vIG9wdGlvbnMgKi8KKyAgICB9CisKKyAgICBkb21pZCA9IGZp bmRfZG9tYWluKGFyZ3Zbb3B0aW5kKytdKTsKKworICAgIGxpYnhsX2RldmljZV91c2JjdHJsX2lu aXQoJnVzYmN0cmwpOworCisgICAgZm9yIChhcmd2ICs9IG9wdGluZCwgYXJnYyAtPSBvcHRpbmQ7 IGFyZ2MgPiAwOyArK2FyZ3YsIC0tYXJnYykgeworICAgICAgICBpZiAocGFyc2VfdXNiY3RybF9j b25maWcoJnVzYmN0cmwsICphcmd2KSkKKyAgICAgICAgICAgIHJldHVybiAxOworICAgIH0KKwor ICAgIHJjID0gbGlieGxfZGV2aWNlX3VzYmN0cmxfYWRkKGN0eCwgZG9taWQsICZ1c2JjdHJsLCAw KTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJsaWJ4bF9kZXZpY2Vf dXNiY3RybF9hZGQgZmFpbGVkLlxuIik7CisgICAgICAgIHJjID0gMTsKKyAgICB9CisKKyAgICBs aWJ4bF9kZXZpY2VfdXNiY3RybF9kaXNwb3NlKCZ1c2JjdHJsKTsKKyAgICByZXR1cm4gcmM7Cit9 CisKK2ludCBtYWluX3VzYmN0cmxfZGV0YWNoKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAg ICB1aW50MzJfdCBkb21pZDsKKyAgICBpbnQgb3B0LCBkZXZpZCwgcmM7CisgICAgbGlieGxfZGV2 aWNlX3VzYmN0cmwgdXNiY3RybDsKKworICAgIFNXSVRDSF9GT1JFQUNIX09QVChvcHQsICIiLCBO VUxMLCAidXNiY3RybC1kZXRhY2giLCAyKSB7CisgICAgICAgIC8qIE5vIG9wdGlvbnMgKi8KKyAg ICB9CisKKyAgICBkb21pZCA9IGZpbmRfZG9tYWluKGFyZ3Zbb3B0aW5kXSk7CisgICAgZGV2aWQg PSBhdG9pKGFyZ3Zbb3B0aW5kKzFdKTsKKworICAgIGxpYnhsX2RldmljZV91c2JjdHJsX2luaXQo JnVzYmN0cmwpOworICAgIGlmIChsaWJ4bF9kZXZpZF90b19kZXZpY2VfdXNiY3RybChjdHgsIGRv bWlkLCBkZXZpZCwgJnVzYmN0cmwpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5rbm93 biBkZXZpY2UgJXMuXG4iLCBhcmd2W29wdGluZCsxXSk7CisgICAgICAgIHJldHVybiAxOworICAg IH0KKworICAgIHJjID0gbGlieGxfZGV2aWNlX3VzYmN0cmxfcmVtb3ZlKGN0eCwgZG9taWQsICZ1 c2JjdHJsLCAwKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJsaWJ4 bF9kZXZpY2VfdXNiY3RybF9yZW1vdmUgZmFpbGVkLlxuIik7CisgICAgICAgIHJjID0gMTsKKyAg ICB9CisKKyAgICBsaWJ4bF9kZXZpY2VfdXNiY3RybF9kaXNwb3NlKCZ1c2JjdHJsKTsKKyAgICBy ZXR1cm4gcmM7CisKK30KKworaW50IG1haW5fdXNiZGV2X2F0dGFjaChpbnQgYXJnYywgY2hhciAq KmFyZ3YpCit7CisgICAgdWludDMyX3QgZG9taWQ7CisgICAgaW50IG9wdCwgcmM7CisgICAgbGli eGxfZGV2aWNlX3VzYmRldiB1c2JkZXY7CisKKyAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAi IiwgTlVMTCwgInVzYmRldi1hdHRhY2giLCAyKSB7CisgICAgICAgIC8qIE5vIG9wdGlvbnMgKi8K KyAgICB9CisKKyAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2X2luaXQoJnVzYmRldik7CisKKyAgICBk b21pZCA9IGZpbmRfZG9tYWluKGFyZ3Zbb3B0aW5kKytdKTsKKworICAgIGZvciAoYXJndiArPSBv cHRpbmQsIGFyZ2MgLT0gb3B0aW5kOyBhcmdjID4gMDsgKythcmd2LCAtLWFyZ2MpIHsKKyAgICAg ICAgaWYgKHBhcnNlX3VzYmRldl9jb25maWcoJnVzYmRldiwgKmFyZ3YpKQorICAgICAgICAgICAg cmV0dXJuIDE7CisgICAgfQorCisgICAgcmMgPSBsaWJ4bF9kZXZpY2VfdXNiZGV2X2FkZChjdHgs IGRvbWlkLCAmdXNiZGV2LCAwKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgZnByaW50ZihzdGRl cnIsICJsaWJ4bF9kZXZpY2VfdXNiZGV2X2FkZCBmYWlsZWQuXG4iKTsKKyAgICAgICAgcmMgPSAx OworICAgIH0KKworICAgIGxpYnhsX2RldmljZV91c2JkZXZfZGlzcG9zZSgmdXNiZGV2KTsKKyAg ICByZXR1cm4gcmM7Cit9CisKK2ludCBtYWluX3VzYmRldl9kZXRhY2goaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQoreworICAgIHVpbnQzMl90IGRvbWlkOworICAgIGludCBjdHJsLCBwb3J0OworICAg IGludCBvcHQsIHJjID0gMTsKKyAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2IHVzYmRldjsKKworICAg IFNXSVRDSF9GT1JFQUNIX09QVChvcHQsICIiLCBOVUxMLCAidXNiZGV2LWRldGFjaCIsIDMpIHsK KyAgICAgICAgLyogTm8gb3B0aW9ucyAqLworICAgIH0KKworICAgIGRvbWlkID0gZmluZF9kb21h aW4oYXJndltvcHRpbmRdKTsKKyAgICBjdHJsID0gYXRvaShhcmd2W29wdGluZCsxXSk7CisgICAg cG9ydCA9IGF0b2koYXJndltvcHRpbmQrMl0pOworCisgICAgaWYgKGFyZ2MgLSBvcHRpbmQgPiAz KSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSW52YWxpZCBhcmd1bWVudHMuXG4iKTsKKyAg ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgbGlieGxfZGV2aWNlX3VzYmRldl9pbml0KCZ1 c2JkZXYpOworICAgIGlmIChsaWJ4bF9jdHJscG9ydF90b19kZXZpY2VfdXNiZGV2KGN0eCwgZG9t aWQsIGN0cmwsIHBvcnQsICZ1c2JkZXYpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5r bm93biBkZXZpY2UgYXQgY29udHJvbGxlciAlZCBwb3J0ICVkLlxuIiwKKyAgICAgICAgICAgICAg ICBjdHJsLCBwb3J0KTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgcmMgPSBsaWJ4 bF9kZXZpY2VfdXNiZGV2X3JlbW92ZShjdHgsIGRvbWlkLCAmdXNiZGV2LCAwKTsKKyAgICBpZiAo cmMpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJsaWJ4bF9kZXZpY2VfdXNiZGV2X3JlbW92 ZSBmYWlsZWQuXG4iKTsKKyAgICAgICAgcmMgPSAxOworICAgIH0KKworICAgIGxpYnhsX2Rldmlj ZV91c2JkZXZfZGlzcG9zZSgmdXNiZGV2KTsKKyAgICByZXR1cm4gcmM7Cit9CisKK2ludCBtYWlu X3VzYmxpc3QoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIHVpbnQzMl90IGRvbWlkOwor ICAgIGxpYnhsX2RldmljZV91c2JjdHJsICp1c2JjdHJsczsKKyAgICBsaWJ4bF91c2JjdHJsaW5m byB1c2JjdHJsaW5mbzsKKyAgICBpbnQgbnVtY3RybCwgaSwgaiwgb3B0OworCisgICAgU1dJVENI X0ZPUkVBQ0hfT1BUKG9wdCwgIiIsIE5VTEwsICJ1c2ItbGlzdCIsIDEpIHsKKyAgICAgICAgLyog Tm8gb3B0aW9ucyAqLworICAgIH0KKworICAgIGRvbWlkID0gZmluZF9kb21haW4oYXJndltvcHRp bmQrK10pOworCisgICAgaWYgKGFyZ2MgPiBvcHRpbmQpIHsKKyAgICAgICAgZnByaW50ZihzdGRl cnIsICJJbnZhbGlkIGFyZ3VtZW50cy5cbiIpOworICAgICAgICBleGl0KC0xKTsKKyAgICB9CisK KyAgICB1c2JjdHJscyA9IGxpYnhsX2RldmljZV91c2JjdHJsX2xpc3QoY3R4LCBkb21pZCwgJm51 bWN0cmwpOworICAgIGlmICghdXNiY3RybHMpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor CisgICAgZm9yIChpID0gMDsgaSA8IG51bWN0cmw7ICsraSkgeworICAgICAgICBwcmludGYoIiUt NnMgJS02cyAlLTNzICUtNXMgJS03cyAlLTVzXG4iLAorICAgICAgICAgICAgICAgICJEZXZpZCIs ICJUeXBlIiwgIkJFIiwgInN0YXRlIiwgInVzYi12ZXIiLCAicG9ydHMiKTsKKworICAgICAgICBs aWJ4bF91c2JjdHJsaW5mb19pbml0KCZ1c2JjdHJsaW5mbyk7CisKKyAgICAgICAgaWYgKCFsaWJ4 bF9kZXZpY2VfdXNiY3RybF9nZXRpbmZvKGN0eCwgZG9taWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZ1c2JjdHJsc1tpXSwgJnVzYmN0cmxpbmZvKSkgeworICAgICAgICAgICAg cHJpbnRmKCIlLTZkICUtNnMgJS0zZCAlLTVkICUtN2QgJS01ZFxuIiwKKyAgICAgICAgICAgICAg ICAgICAgdXNiY3RybGluZm8uZGV2aWQsCisgICAgICAgICAgICAgICAgICAgIGxpYnhsX3VzYmN0 cmxfdHlwZV90b19zdHJpbmcodXNiY3RybGluZm8udHlwZSksCisgICAgICAgICAgICAgICAgICAg IHVzYmN0cmxpbmZvLmJhY2tlbmRfaWQsIHVzYmN0cmxpbmZvLnN0YXRlLAorICAgICAgICAgICAg ICAgICAgICB1c2JjdHJsaW5mby52ZXJzaW9uLCB1c2JjdHJsaW5mby5wb3J0cyk7CisKKyAgICAg ICAgICAgIGZvciAoaiA9IDE7IGogPD0gdXNiY3RybGluZm8ucG9ydHM7IGorKykgeworICAgICAg ICAgICAgICAgIGxpYnhsX2RldmljZV91c2JkZXYgdXNiZGV2OworCisgICAgICAgICAgICAgICAg bGlieGxfZGV2aWNlX3VzYmRldl9pbml0KCZ1c2JkZXYpOworCisgICAgICAgICAgICAgICAgcHJp bnRmKCIgIFBvcnQgJWQ6Iiwgaik7CisKKyAgICAgICAgICAgICAgICBpZiAoIWxpYnhsX2N0cmxw b3J0X3RvX2RldmljZV91c2JkZXYoY3R4LCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNiY3RybGluZm8uZGV2aWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGosICZ1c2JkZXYp KSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiIEJ1cyAlMDN4IERldmljZSAlMDN4XG4i LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNiZGV2LnUuaG9zdGRldi5ob3N0YnVzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNiZGV2LnUuaG9zdGRldi5ob3N0YWRkcik7Cisg ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIp OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV91c2Jk ZXZfZGlzcG9zZSgmdXNiZGV2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg IGxpYnhsX3VzYmN0cmxpbmZvX2Rpc3Bvc2UoJnVzYmN0cmxpbmZvKTsKKyAgICB9CisKKyAgICBs aWJ4bF9kZXZpY2VfdXNiY3RybF9saXN0X2ZyZWUodXNiY3RybHMsIG51bWN0cmwpOworICAgIHJl dHVybiAwOworfQorCiBpbnQgbWFpbl9jb25zb2xlKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsK ICAgICB1aW50MzJfdCBkb21pZDsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX2NtZHRhYmxl LmMgYi90b29scy9saWJ4bC94bF9jbWR0YWJsZS5jCmluZGV4IGZkYzFhYzYuLmIxNGI4ODEgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZHRhYmxlLmMKKysrIGIvdG9vbHMvbGlieGwveGxf Y21kdGFibGUuYwpAQCAtNTUzLDYgKzU1MywzMSBAQCBzdHJ1Y3QgY21kX3NwZWMgY21kX3RhYmxl W10gPSB7CiAgICAgfSwKIAogI2VuZGlmCisgICAgeyAidXNiY3RybC1hdHRhY2giLAorICAgICAg Jm1haW5fdXNiY3RybF9hdHRhY2gsIDAsIDEsCisgICAgICAiQ3JlYXRlIGEgdmlydHVhbCBVU0Ig Y29udHJvbGxlciBmb3IgYSBkb21haW4iLAorICAgICAgIjxEb21haW4+IFt0eXBlPXB2XSBbdmVy c2lvbj08dmVyc2lvbj5dIFtwb3J0cz08bnVtYmVyPl0iLAorICAgIH0sCisgICAgeyAidXNiY3Ry bC1kZXRhY2giLAorICAgICAgJm1haW5fdXNiY3RybF9kZXRhY2gsIDAsIDEsCisgICAgICAiUmVt b3ZlIHRoZSB2aXJ0dWFsIFVTQiBjb250cm9sbGVyIHNwZWNpZmllZCBieSA8RGV2SWQ+IGZvciBh IGRvbWFpbiIsCisgICAgICAiPERvbWFpbj4gPERldklkPiIsCisgICAgfSwKKyAgICB7ICJ1c2Jk ZXYtYXR0YWNoIiwKKyAgICAgICZtYWluX3VzYmRldl9hdHRhY2gsIDAsIDEsCisgICAgICAiQXR0 YWNoIGEgVVNCIGRldmljZSB0byBhIGRvbWFpbiIsCisgICAgICAiPERvbWFpbj4gaG9zdGJ1cz08 YnVzbnVtPiBob3N0YWRkcj08ZGV2bnVtPiBbY29udHJvbGxlcj08RGV2SWQ+IFtwb3J0PTxwb3J0 Pl1dIiwKKyAgICB9LAorICAgIHsgInVzYmRldi1kZXRhY2giLAorICAgICAgJm1haW5fdXNiZGV2 X2RldGFjaCwgMCwgMSwKKyAgICAgICJEZXRhY2ggYSBVU0IgZGV2aWNlIGZyb20gYSBkb21haW4i LAorICAgICAgIjxEb21haW4+IDxjb250cm9sbGVyPiA8cG9ydD4iLAorICAgIH0sCisgICAgeyAi dXNiLWxpc3QiLAorICAgICAgJm1haW5fdXNibGlzdCwgMCwgMCwKKyAgICAgICJMaXN0IGluZm9y bWF0aW9uIGFib3V0IGFsbCBVU0IgY29udHJvbGxlcnMgYW5kIGRldmljZXMgZm9yIGEgZG9tYWlu IiwKKyAgICAgICI8RG9tYWluPiIsCisgICAgfSwKIH07CiAKIGludCBjbWR0YWJsZV9sZW4gPSBz aXplb2YoY21kX3RhYmxlKS9zaXplb2Yoc3RydWN0IGNtZF9zcGVjKTsKLS0gCjIuMS40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK