From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3] xen-hvm: stop faking I/O to access PCI config space Date: Fri, 18 May 2018 15:27:42 +0100 Message-ID: <1526653662-9237-1-git-send-email-paul.durrant@citrix.com> 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 1fJgMG-0000Iu-QW for xen-devel@lists.xenproject.org; Fri, 18 May 2018 14:27:48 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-devel@nongnu.org, xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Marcel Apfelbaum , Paul Durrant , Jan Beulich , Anthony Perard , Paolo Bonzini , Roger Pau Monne , Richard Henderson List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW1vdmVzIHRoZSBjdXJyZW50IGhhY2tlcnkgd2hlcmUgSU9SRVFfVFlQRV9Q Q0lfQ09ORklHCnJlcXVlc3RzIGFyZSBoYW5kbGVkIGJ5IGZha2luZyBQSU8gdG8gMHhjZjggYW5k IDB4Y2ZjIGFuZCByZXBsYWNlcyBpdAp3aXRoIGRpcmVjdCBjYWxscyB0byBwY2lfaG9zdF9jb25m aWdfcmVhZC93cml0ZV9jb21tb24oKS4KRG9pbmcgc28gbmVjZXNzaXRhdGVzIG1hcHBpbmcgQkRG cyB0byBQQ0lEZXZpY2VzIGJ1dCBtYWludGFpbmluZyBhIHNpbXBsZQpRTElTVCBpbiB4ZW5fZGV2 aWNlX3JlYWxpemUvdW5yZWFsaXplKCkgd2lsbCBzdWZmaWNlLgoKTk9URTogd2hpbHN0IGNvbmZp ZyBzcGFjZSBhY2Nlc3NlcyBhcmUgY3VycmVudGx5IGxpbWl0ZWQgdG8KICAgICAgUENJX0NPTkZJ R19TUEFDRV9TSVpFLCB0aGlzIHBhdGNoIHBhdmVzIHRoZSB3YXkgdG8gaW5jcmVhc2luZyB0aGUK ICAgICAgbGltaXQgdG8gUENJRV9DT05GSUdfU1BBQ0VfU0laRSB3aGVuIFhlbiBnYWlucyB0aGUg YWJpbGl0eSB0bwogICAgICBlbXVsYXRlIE1DRkcgdGFibGUgYWNjZXNzZXMuCgpTaWduZWQtb2Zm LWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLQpDYzogU3RlZmFu byBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogQW50aG9ueSBQZXJhcmQg PGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+CkNjOiAiTWljaGFlbCBTLiBUc2lya2luIiA8bXN0 QHJlZGhhdC5jb20+CkNjOiBNYXJjZWwgQXBmZWxiYXVtIDxtYXJjZWxAcmVkaGF0LmNvbT4KQ2M6 IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+CkNjOiBSaWNoYXJkIEhlbmRlcnNv biA8cnRoQHR3aWRkbGUubmV0PgpDYzogRWR1YXJkbyBIYWJrb3N0IDxlaGFia29zdEByZWRoYXQu Y29tPgpDYzogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ2M6IEphbiBC ZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KCnYzOgogLSBEcm9wIGhlbHBlciBmdW5jdGlvbiBh bmQgdHJlYXQgY291bnQgPiAxIGFzIGFuIGVycm9yCiAtIEFkZCBKYW4gdG8gY2MgbGlzdAoKdjI6 CiAtIEludHJvZHVjZSBhIGhlbHBlciBmdW5jdGlvbiByd19jb25maWdfcmVxX2l0ZW0oKSB0byBo YW5kbGUgY29uZmlnCiAgIHJlZ2lzdGVyIG9mZnNldCBjYWxjdWxhdGlvbgogLSBIYW5kbGUgcmVx LT5jb3VudCA+IDEgbW9yZSBsaWtlIE1NSU8gcmF0aGVyIHRoYW4gUElPCiAtIEFkZCBSb2dlciB0 byBjYyBsaXN0IChub3QgdGFraW5nIFItYiBiZWNhdXNlIG9mIHNpZ25pZmljYW50IGNoYW5nZSkK LS0tCiBody9pMzg2L3hlbi90cmFjZS1ldmVudHMgfCAgIDIgKwogaHcvaTM4Ni94ZW4veGVuLWh2 bS5jICAgIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2h3L2kzODYveGVuL3RyYWNlLWV2ZW50cyBiL2h3L2kzODYveGVuL3RyYWNl LWV2ZW50cwppbmRleCA4ZGFiN2JjLi5mNTc2ZjFiIDEwMDY0NAotLS0gYS9ody9pMzg2L3hlbi90 cmFjZS1ldmVudHMKKysrIGIvaHcvaTM4Ni94ZW4vdHJhY2UtZXZlbnRzCkBAIC0xNSw2ICsxNSw4 IEBAIGNwdV9pb3JlcV9waW8odm9pZCAqcmVxLCB1aW50MzJfdCBkaXIsIHVpbnQzMl90IGRmLCB1 aW50MzJfdCBkYXRhX2lzX3B0ciwgdWludDY0CiBjcHVfaW9yZXFfcGlvX3JlYWRfcmVnKHZvaWQg KnJlcSwgdWludDY0X3QgZGF0YSwgdWludDY0X3QgYWRkciwgdWludDMyX3Qgc2l6ZSkgIkkvTz0l cCBwaW8gcmVhZCByZWcgZGF0YT0weCUiUFJJeDY0IiBwb3J0PTB4JSJQUkl4NjQiIHNpemU9JWQi CiBjcHVfaW9yZXFfcGlvX3dyaXRlX3JlZyh2b2lkICpyZXEsIHVpbnQ2NF90IGRhdGEsIHVpbnQ2 NF90IGFkZHIsIHVpbnQzMl90IHNpemUpICJJL089JXAgcGlvIHdyaXRlIHJlZyBkYXRhPTB4JSJQ Ukl4NjQiIHBvcnQ9MHglIlBSSXg2NCIgc2l6ZT0lZCIKIGNwdV9pb3JlcV9tb3ZlKHZvaWQgKnJl cSwgdWludDMyX3QgZGlyLCB1aW50MzJfdCBkZiwgdWludDMyX3QgZGF0YV9pc19wdHIsIHVpbnQ2 NF90IGFkZHIsIHVpbnQ2NF90IGRhdGEsIHVpbnQzMl90IGNvdW50LCB1aW50MzJfdCBzaXplKSAi SS9PPSVwIGNvcHkgZGlyPSVkIGRmPSVkIHB0cj0lZCBwb3J0PTB4JSJQUkl4NjQiIGRhdGE9MHgl IlBSSXg2NCIgY291bnQ9JWQgc2l6ZT0lZCIKK2NwdV9pb3JlcV9jb25maWdfcmVhZCh2b2lkICpy ZXEsIHVpbnQzMl90IHNiZGYsIHVpbnQzMl90IHJlZywgdWludDMyX3Qgc2l6ZSwgdWludDMyX3Qg ZGF0YSkgIkkvTz0lcCBzYmRmPTB4JXggcmVnPSV1IHNpemU9JXUgZGF0YT0weCV4IgorY3B1X2lv cmVxX2NvbmZpZ193cml0ZSh2b2lkICpyZXEsIHVpbnQzMl90IHNiZGYsIHVpbnQzMl90IHJlZywg dWludDMyX3Qgc2l6ZSwgdWludDMyX3QgZGF0YSkgIkkvTz0lcCBzYmRmPTB4JXggcmVnPSV1IHNp emU9JXUgZGF0YT0weCV4IgogCiAjIHhlbi1tYXBjYWNoZS5jCiB4ZW5fbWFwX2NhY2hlKHVpbnQ2 NF90IHBoeXNfYWRkcikgIndhbnQgMHglIlBSSXg2NApkaWZmIC0tZ2l0IGEvaHcvaTM4Ni94ZW4v eGVuLWh2bS5jIGIvaHcvaTM4Ni94ZW4veGVuLWh2bS5jCmluZGV4IGNhYTU2M2IuLjNhNmM0MmIg MTAwNjQ0Ci0tLSBhL2h3L2kzODYveGVuL3hlbi1odm0uYworKysgYi9ody9pMzg2L3hlbi94ZW4t aHZtLmMKQEAgLTEyLDYgKzEyLDcgQEAKIAogI2luY2x1ZGUgImNwdS5oIgogI2luY2x1ZGUgImh3 L3BjaS9wY2kuaCIKKyNpbmNsdWRlICJody9wY2kvcGNpX2hvc3QuaCIKICNpbmNsdWRlICJody9p Mzg2L3BjLmgiCiAjaW5jbHVkZSAiaHcvaTM4Ni9hcGljLW1zaWRlZi5oIgogI2luY2x1ZGUgImh3 L3hlbi94ZW5fY29tbW9uLmgiCkBAIC04Niw2ICs4NywxMiBAQCB0eXBlZGVmIHN0cnVjdCBYZW5Q aHlzbWFwIHsKICAgICBRTElTVF9FTlRSWShYZW5QaHlzbWFwKSBsaXN0OwogfSBYZW5QaHlzbWFw OwogCit0eXBlZGVmIHN0cnVjdCBYZW5QY2lEZXZpY2UgeworICAgIFBDSURldmljZSAqcGNpX2Rl djsKKyAgICB1aW50MzJfdCBzYmRmOworICAgIFFMSVNUX0VOVFJZKFhlblBjaURldmljZSkgZW50 cnk7Cit9IFhlblBjaURldmljZTsKKwogdHlwZWRlZiBzdHJ1Y3QgWGVuSU9TdGF0ZSB7CiAgICAg aW9zZXJ2aWRfdCBpb3NlcnZpZDsKICAgICBzaGFyZWRfaW9wYWdlX3QgKnNoYXJlZF9wYWdlOwpA QCAtMTA1LDYgKzExMiw3IEBAIHR5cGVkZWYgc3RydWN0IFhlbklPU3RhdGUgewogICAgIHN0cnVj dCB4c19oYW5kbGUgKnhlbnN0b3JlOwogICAgIE1lbW9yeUxpc3RlbmVyIG1lbW9yeV9saXN0ZW5l cjsKICAgICBNZW1vcnlMaXN0ZW5lciBpb19saXN0ZW5lcjsKKyAgICBRTElTVF9IRUFEKCwgWGVu UGNpRGV2aWNlKSBkZXZfbGlzdDsKICAgICBEZXZpY2VMaXN0ZW5lciBkZXZpY2VfbGlzdGVuZXI7 CiAgICAgUUxJU1RfSEVBRCgsIFhlblBoeXNtYXApIHBoeXNtYXA7CiAgICAgaHdhZGRyIGZyZWVf cGh5c19vZmZzZXQ7CkBAIC01NjksNiArNTc3LDEyIEBAIHN0YXRpYyB2b2lkIHhlbl9kZXZpY2Vf cmVhbGl6ZShEZXZpY2VMaXN0ZW5lciAqbGlzdGVuZXIsCiAKICAgICBpZiAob2JqZWN0X2R5bmFt aWNfY2FzdChPQkpFQ1QoZGV2KSwgVFlQRV9QQ0lfREVWSUNFKSkgewogICAgICAgICBQQ0lEZXZp Y2UgKnBjaV9kZXYgPSBQQ0lfREVWSUNFKGRldik7CisgICAgICAgIFhlblBjaURldmljZSAqeGVu ZGV2ID0gZ19uZXcoWGVuUGNpRGV2aWNlLCAxKTsKKworICAgICAgICB4ZW5kZXYtPnBjaV9kZXYg PSBwY2lfZGV2OworICAgICAgICB4ZW5kZXYtPnNiZGYgPSBQQ0lfQlVJTERfQkRGKHBjaV9kZXZf YnVzX251bShwY2lfZGV2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Y2lfZGV2LT5kZXZmbik7CisgICAgICAgIFFMSVNUX0lOU0VSVF9IRUFEKCZzdGF0ZS0+ZGV2X2xp c3QsIHhlbmRldiwgZW50cnkpOwogCiAgICAgICAgIHhlbl9tYXBfcGNpZGV2KHhlbl9kb21pZCwg c3RhdGUtPmlvc2VydmlkLCBwY2lfZGV2KTsKICAgICB9CkBAIC01ODEsOCArNTk1LDE3IEBAIHN0 YXRpYyB2b2lkIHhlbl9kZXZpY2VfdW5yZWFsaXplKERldmljZUxpc3RlbmVyICpsaXN0ZW5lciwK IAogICAgIGlmIChvYmplY3RfZHluYW1pY19jYXN0KE9CSkVDVChkZXYpLCBUWVBFX1BDSV9ERVZJ Q0UpKSB7CiAgICAgICAgIFBDSURldmljZSAqcGNpX2RldiA9IFBDSV9ERVZJQ0UoZGV2KTsKKyAg ICAgICAgWGVuUGNpRGV2aWNlICp4ZW5kZXYsICpuZXh0OwogCiAgICAgICAgIHhlbl91bm1hcF9w Y2lkZXYoeGVuX2RvbWlkLCBzdGF0ZS0+aW9zZXJ2aWQsIHBjaV9kZXYpOworCisgICAgICAgIFFM SVNUX0ZPUkVBQ0hfU0FGRSh4ZW5kZXYsICZzdGF0ZS0+ZGV2X2xpc3QsIGVudHJ5LCBuZXh0KSB7 CisgICAgICAgICAgICBpZiAoeGVuZGV2LT5wY2lfZGV2ID09IHBjaV9kZXYpIHsKKyAgICAgICAg ICAgICAgICBRTElTVF9SRU1PVkUoeGVuZGV2LCBlbnRyeSk7CisgICAgICAgICAgICAgICAgZ19m cmVlKHhlbmRldik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg ICAgIH0KICAgICB9CiB9CiAKQEAgLTkwMyw2ICs5MjYsNjIgQEAgc3RhdGljIHZvaWQgY3B1X2lv cmVxX21vdmUoaW9yZXFfdCAqcmVxKQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgY3B1X2lvcmVx X2NvbmZpZyhYZW5JT1N0YXRlICpzdGF0ZSwgaW9yZXFfdCAqcmVxKQoreworICAgIHVpbnQzMl90 IHNiZGYgPSByZXEtPmFkZHIgPj4gMzI7CisgICAgdWludDMyX3QgcmVnID0gcmVxLT5hZGRyOwor ICAgIFhlblBjaURldmljZSAqeGVuZGV2OworCisgICAgaWYgKHJlcS0+c2l6ZSAhPSBzaXplb2Yo dWludDhfdCkgJiYgcmVxLT5zaXplICE9IHNpemVvZih1aW50MTZfdCkgJiYKKyAgICAgICAgcmVx LT5zaXplICE9IHNpemVvZih1aW50MzJfdCkpIHsKKyAgICAgICAgaHdfZXJyb3IoIlBDSSBjb25m aWcgYWNjZXNzOiBiYWQgc2l6ZSAoJXUpIiwgcmVxLT5zaXplKTsKKyAgICB9CisKKyAgICBpZiAo cmVxLT5jb3VudCAhPSAxKSB7CisgICAgICAgIGh3X2Vycm9yKCJQQ0kgY29uZmlnIGFjY2Vzczog YmFkIGNvdW50ICgldSkiLCByZXEtPmNvdW50KTsKKyAgICB9CisKKyAgICBRTElTVF9GT1JFQUNI KHhlbmRldiwgJnN0YXRlLT5kZXZfbGlzdCwgZW50cnkpIHsKKyAgICAgICAgaWYgKHhlbmRldi0+ c2JkZiAhPSBzYmRmKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAg ICAgIGlmICghcmVxLT5kYXRhX2lzX3B0cikgeworICAgICAgICAgICAgaWYgKHJlcS0+ZGlyID09 IElPUkVRX1JFQUQpIHsKKyAgICAgICAgICAgICAgICByZXEtPmRhdGEgPSBwY2lfaG9zdF9jb25m aWdfcmVhZF9jb21tb24oCisgICAgICAgICAgICAgICAgICAgIHhlbmRldi0+cGNpX2RldiwgcmVn LCBQQ0lfQ09ORklHX1NQQUNFX1NJWkUsCisgICAgICAgICAgICAgICAgICAgIHJlcS0+c2l6ZSk7 CisgICAgICAgICAgICAgICAgdHJhY2VfY3B1X2lvcmVxX2NvbmZpZ19yZWFkKHJlcSwgeGVuZGV2 LT5zYmRmLCByZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlcS0+c2l6ZSwgcmVxLT5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmVxLT5kaXIg PT0gSU9SRVFfV1JJVEUpIHsKKyAgICAgICAgICAgICAgICB0cmFjZV9jcHVfaW9yZXFfY29uZmln X3dyaXRlKHJlcSwgeGVuZGV2LT5zYmRmLCByZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXEtPnNpemUsIHJlcS0+ZGF0YSk7CisgICAgICAgICAgICAg ICAgcGNpX2hvc3RfY29uZmlnX3dyaXRlX2NvbW1vbigKKyAgICAgICAgICAgICAgICAgICAgeGVu ZGV2LT5wY2lfZGV2LCByZWcsIFBDSV9DT05GSUdfU1BBQ0VfU0laRSwKKyAgICAgICAgICAgICAg ICAgICAgcmVxLT5kYXRhLCByZXEtPnNpemUpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVs c2UgeworICAgICAgICAgICAgdWludDMyX3QgdG1wOworCisgICAgICAgICAgICBpZiAocmVxLT5k aXIgPT0gSU9SRVFfUkVBRCkgeworICAgICAgICAgICAgICAgIHRtcCA9IHBjaV9ob3N0X2NvbmZp Z19yZWFkX2NvbW1vbigKKyAgICAgICAgICAgICAgICAgICAgeGVuZGV2LT5wY2lfZGV2LCByZWcs IFBDSV9DT05GSUdfU1BBQ0VfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgcmVxLT5zaXplKTsK KyAgICAgICAgICAgICAgICB0cmFjZV9jcHVfaW9yZXFfY29uZmlnX3JlYWQocmVxLCB4ZW5kZXYt PnNiZGYsIHJlZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVxLT5zaXplLCB0bXApOworICAgICAgICAgICAgICAgIHdyaXRlX3BoeXNfcmVxX2l0ZW0ocmVx LT5kYXRhLCByZXEsIDAsICZ0bXApOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXEtPmRpciA9 PSBJT1JFUV9XUklURSkgeworICAgICAgICAgICAgICAgIHJlYWRfcGh5c19yZXFfaXRlbShyZXEt PmRhdGEsIHJlcSwgaSwgJnRtcCk7CisgICAgICAgICAgICAgICAgdHJhY2VfY3B1X2lvcmVxX2Nv bmZpZ193cml0ZShyZXEsIHhlbmRldi0+c2JkZiwgcmVnLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVxLT5zaXplLCB0bXApOworICAgICAgICAgICAgICAg IHBjaV9ob3N0X2NvbmZpZ193cml0ZV9jb21tb24oCisgICAgICAgICAgICAgICAgICAgIHhlbmRl di0+cGNpX2RldiwgcmVnLCBQQ0lfQ09ORklHX1NQQUNFX1NJWkUsCisgICAgICAgICAgICAgICAg ICAgIHRtcCwgcmVxLT5zaXplKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30K Kwogc3RhdGljIHZvaWQgcmVnc190b19jcHUodm13YXJlX3JlZ3NfdCAqdm1wb3J0X3JlZ3MsIGlv cmVxX3QgKnJlcSkKIHsKICAgICBYODZDUFUgKmNwdTsKQEAgLTk3NSwyNyArMTA1NCw5IEBAIHN0 YXRpYyB2b2lkIGhhbmRsZV9pb3JlcShYZW5JT1N0YXRlICpzdGF0ZSwgaW9yZXFfdCAqcmVxKQog ICAgICAgICBjYXNlIElPUkVRX1RZUEVfSU5WQUxJREFURToKICAgICAgICAgICAgIHhlbl9pbnZh bGlkYXRlX21hcF9jYWNoZSgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSU9S RVFfVFlQRV9QQ0lfQ09ORklHOiB7Ci0gICAgICAgICAgICB1aW50MzJfdCBzYmRmID0gcmVxLT5h ZGRyID4+IDMyOwotICAgICAgICAgICAgdWludDMyX3QgdmFsOwotCi0gICAgICAgICAgICAvKiBG YWtlIGEgd3JpdGUgdG8gcG9ydCAweENGOCBzbyB0aGF0Ci0gICAgICAgICAgICAgKiB0aGUgY29u ZmlnIHNwYWNlIGFjY2VzcyB3aWxsIHRhcmdldCB0aGUKLSAgICAgICAgICAgICAqIGNvcnJlY3Qg ZGV2aWNlIG1vZGVsLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICB2YWwgPSAoMXUgPDwg MzEpIHwKLSAgICAgICAgICAgICAgICAgICgocmVxLT5hZGRyICYgMHgwZjAwKSA8PCAxNikgfAot ICAgICAgICAgICAgICAgICAgKChzYmRmICYgMHhmZmZmKSA8PCA4KSB8Ci0gICAgICAgICAgICAg ICAgICAocmVxLT5hZGRyICYgMHhmYyk7Ci0gICAgICAgICAgICBkb19vdXRwKDB4Y2Y4LCA0LCB2 YWwpOwotCi0gICAgICAgICAgICAvKiBOb3cgaXNzdWUgdGhlIGNvbmZpZyBzcGFjZSBhY2Nlc3Mg dmlhCi0gICAgICAgICAgICAgKiBwb3J0IDB4Q0ZDCi0gICAgICAgICAgICAgKi8KLSAgICAgICAg ICAgIHJlcS0+YWRkciA9IDB4Y2ZjIHwgKHJlcS0+YWRkciAmIDB4MDMpOwotICAgICAgICAgICAg Y3B1X2lvcmVxX3BpbyhyZXEpOworICAgICAgICBjYXNlIElPUkVRX1RZUEVfUENJX0NPTkZJRzoK KyAgICAgICAgICAgIGNwdV9pb3JlcV9jb25maWcoc3RhdGUsIHJlcSk7CiAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgaHdfZXJyb3Io IkludmFsaWQgaW9yZXEgdHlwZSAweCV4XG4iLCByZXEtPnR5cGUpOwogICAgIH0KQEAgLTEzNjYs NiArMTQyNyw3IEBAIHZvaWQgeGVuX2h2bV9pbml0KFBDTWFjaGluZVN0YXRlICpwY21zLCBNZW1v cnlSZWdpb24gKipyYW1fbWVtb3J5KQogICAgIG1lbW9yeV9saXN0ZW5lcl9yZWdpc3Rlcigmc3Rh dGUtPmlvX2xpc3RlbmVyLCAmYWRkcmVzc19zcGFjZV9pbyk7CiAKICAgICBzdGF0ZS0+ZGV2aWNl X2xpc3RlbmVyID0geGVuX2RldmljZV9saXN0ZW5lcjsKKyAgICBRTElTVF9JTklUKCZzdGF0ZS0+ ZGV2X2xpc3QpOwogICAgIGRldmljZV9saXN0ZW5lcl9yZWdpc3Rlcigmc3RhdGUtPmRldmljZV9s aXN0ZW5lcik7CiAKICAgICAvKiBJbml0aWFsaXplIGJhY2tlbmQgY29yZSAmIGRyaXZlcnMgKi8K LS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==