From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v3 2/3] xen/x86: use trampoline e820 buffer for BIOS interface only Date: Fri, 24 Mar 2017 08:48:27 +0100 Message-ID: <20170324074828.7346-3-jgross@suse.com> References: <20170324074828.7346-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1crJxZ-0000tU-Ol for xen-devel@lists.xenproject.org; Fri, 24 Mar 2017 07:48:33 +0000 In-Reply-To: <20170324074828.7346-1-jgross@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.xenproject.org Cc: Juergen Gross , andrew.cooper3@citrix.com, daniel.kiper@oracle.com, alex.thorlton@hpe.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiB1c2luZyB0aGUgRTgyMCByYXcgYnVmZmVyIGZvciBCSU9TLCBFRkkgYW5kIG11 bHRpYm9vdCBiYXNlZAptZW1vcnkgbWFwIGluZm9ybWF0aW9uIHVzZSBpdCBmb3IgdGhlIEJJT1Mg aW50ZXJmYWNlIG9ubHkuIFRoaXMgd2lsbAplbmFibGUgdXMgdG8gc3VwcG9ydCBtb3JlIEU4MjAg ZW50cmllcyB0aGFuIHRoZSBsaW1pdGVkIHRyYW1wb2xpbmUKbG9jYXRlZCBidWZmZXIgY2FuLgoK QWRkIGEgbmV3IHJhdyBlODIwIHRhYmxlIGZvciBjb21tb24gcHVycG9zZSBhbmQgY29weSB0aGUg QklPUyBidWZmZXIKdG8gaXQuIERvaW5nIHRoZSBjb3B5aW5nIGluIGFzc2VtYmx5IGF2b2lkcyB0 aGUgbmVlZCB0byBleHBvcnQgdGhlCnN5bWJvbHMgZm9yIHRoZSBCSU9TIEU4MjAgYnVmZmVyIGFu ZCBudW1iZXIgb2YgZW50cmllcy4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9z c0BzdXNlLmNvbT4KLS0tClYzOiAtIHJld29yayBvZiBlODIwbWFwX2NvcHkgKEphbiBCZXVsaWNo KQogICAgLSBhZ2FpbiBBUlJBWV9TSVpFKCkgKEphbiBCZXVsaWNoKQpWMjogLSBtb3ZlIGNvcHlp bmcgdGhlIEJJT1MgRTgyMCB0YWJsZSB0byB0aGUgY29tbW9uIG9uZSBpbnRvIGFzc2VtYmx5CiAg ICAgIGNvZGUgYXZvaWRpbmcgdGhlIG5lZWQgdG8gZXhwb3NlIHRoZSBCSU9TIHRhYmxlIHRvIEMg Y29kZQogICAgICAoSmFuIEJldWxpY2gpCiAgICAtIHVzZSBBUlJBWV9TSVpFKCkgaW5zdGVhZCBv ZiBFODIwTUFYIHdoZXJlIGFwcHJvcHJpYXRlCiAgICAgIChKYW4gQmV1bGljaCkKICAgIC0gc29t ZSBzdHlsZSBmaXhlcyAoSmFuIEJldWxpY2gpCi0tLQogeGVuL2FyY2gveDg2L2Jvb3QvbWVtLlMg ICAgIHwgMjEgKysrKysrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9lODIwLmMgICAgICAg ICB8IDI0ICsrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290 LmggfCAxMCArKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgfCA0NyArKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2Fz bS14ODYvZTgyMC5oICB8ICA5ICsrKystLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRp b25zKCspLCA0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9vdC9t ZW0uUyBiL3hlbi9hcmNoL3g4Ni9ib290L21lbS5TCmluZGV4IDYwMmFiMmMuLjE0ZGZmOTUgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L21lbS5TCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290 L21lbS5TCkBAIC02NywxMCArNjcsMjcgQEAgZ2V0X21lbW9yeV9tYXA6CiAKICAgICAgICAgcmV0 CiAKKy8qCisgKiBDb3B5IEU4MjAgbWFwIG9idGFpbmVkIGZyb20gQklPUyB0byBhIGJ1ZmZlciBh bGxvY2F0ZWQgYnkgWGVuLgorICogSW5wdXQ6ICVyZGk6IHRhcmdldCBhZGRyZXNzIG9mIGU4MjAg ZW50cnkgYXJyYXkKKyAqICAgICAgICAlZXNpOiBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIHRv IGNvcHkKKyAqIE91dHB1dDogJWVheDogbnVtYmVyIG9mIGVudHJpZXMgY29waWVkCisgKi8KKyAg ICAgICAgLmNvZGU2NAorRU5UUlkoZTgyMG1hcF9jb3B5KQorICAgICAgICBtb3YgICAgICVlc2ks ICVlYXgKKyAgICAgICAgbGVhICAgICBlODIwbWFwKCVyaXApLCAlcnNpCisgICAgICAgIG1vdiAg ICAgZTgyMG5yKCVyaXApLCAlZWN4CisgICAgICAgIGNtcCAgICAgJWVjeCwgJWVheAorICAgICAg ICBjbW92YSAgICVlY3gsICVlYXggICAgICAgICAgICAgICAgICAgICAgIyBudW1iZXIgb2YgZW50 cmllcyB0byBtb3ZlCisgICAgICAgIGltdWwgICAgJDUsICVlYXgsICVlY3gKKyAgICAgICAgcmVw IG1vdnNsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZG8gdGhlIG1vdmUKKyAgICAg ICAgcmV0CisKICAgICAgICAgLmFsaWduICA0Ci1HTE9CQUwoZTgyMG1hcCkKK2U4MjBtYXA6CiAg ICAgICAgIC5maWxsICAgRTgyME1BWCoyMCwxLDAKLUdMT0JBTChlODIwbnIpCitlODIwbnI6CiAg ICAgICAgIC5sb25nICAgMAogR0xPQkFMKGxvd21lbV9rYikKICAgICAgICAgLmxvbmcgICAwCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZTgyMC5jIGIveGVuL2FyY2gveDg2L2U4MjAuYwppbmRl eCA3NjUzN2VhLi5iYzE1NDRhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZTgyMC5jCisrKyBi L3hlbi9hcmNoL3g4Ni9lODIwLmMKQEAgLTMzLDYgKzMzLDcgQEAgc3RhdGljIGJvb2xfdCBfX2lu aXRkYXRhIGU4MjBfdmVyYm9zZTsKIGJvb2xlYW5fcGFyYW0oImU4MjAtdmVyYm9zZSIsIGU4MjBf dmVyYm9zZSk7CiAKIHN0cnVjdCBlODIwbWFwIGU4MjA7CitzdHJ1Y3QgZTgyMG1hcCBfX2luaXRk YXRhIGU4MjBfcmF3OwogCiAvKgogICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGVudGly ZSByYW5nZSA8c3RhcnQsZW5kPiBpcyBtYXBwZWQgd2l0aCB0eXBlLgpAQCAtNzUsNyArNzYsNyBA QCBzdGF0aWMgdm9pZCBfX2luaXQgYWRkX21lbW9yeV9yZWdpb24odW5zaWduZWQgbG9uZyBsb25n IHN0YXJ0LAogCiAgICAgeCA9IGU4MjAubnJfbWFwOwogCi0gICAgaWYgKHggPT0gRTgyME1BWCkg eworICAgIGlmICh4ID09IEFSUkFZX1NJWkUoZTgyMC5tYXApKSB7CiAgICAgICAgIHByaW50ayhL RVJOX0VSUiAiT29vcHMhIFRvbyBtYW55IGVudHJpZXMgaW4gdGhlIG1lbW9yeSBtYXAhXG4iKTsK ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEzMyw3ICsxMzQsOCBAQCBzdGF0aWMgc3RydWN0 IGNoYW5nZV9tZW1iZXIgKmNoYW5nZV9wb2ludFsyKkU4MjBNQVhdIF9faW5pdGRhdGE7CiBzdGF0 aWMgc3RydWN0IGU4MjBlbnRyeSAqb3ZlcmxhcF9saXN0W0U4MjBNQVhdIF9faW5pdGRhdGE7CiBz dGF0aWMgc3RydWN0IGU4MjBlbnRyeSBuZXdfYmlvc1tFODIwTUFYXSBfX2luaXRkYXRhOwogCi1z dGF0aWMgaW50IF9faW5pdCBzYW5pdGl6ZV9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICogYmlv c21hcCwgY2hhciAqIHBucl9tYXApCitzdGF0aWMgaW50IF9faW5pdCBzYW5pdGl6ZV9lODIwX21h cChzdHJ1Y3QgZTgyMGVudHJ5ICpiaW9zbWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50ICpwbnJfbWFwKQogewogICAgIHN0cnVjdCBjaGFuZ2VfbWVt YmVyICpjaGFuZ2VfdG1wOwogICAgIHVuc2lnbmVkIGxvbmcgY3VycmVudF90eXBlLCBsYXN0X3R5 cGU7CkBAIC0yNjYsNyArMjY4LDcgQEAgc3RhdGljIGludCBfX2luaXQgc2FuaXRpemVfZTgyMF9t YXAoc3RydWN0IGU4MjBlbnRyeSAqIGJpb3NtYXAsIGNoYXIgKiBwbnJfbWFwKQogICAgICAgICAg ICAgICAgICAgICBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciAtIGxhc3RfYWRkcjsKIAkJCQkv KiBtb3ZlIGZvcndhcmQgb25seSBpZiB0aGUgbmV3IHNpemUgd2FzIG5vbi16ZXJvICovCiAgICAg ICAgICAgICAgICAgaWYgKG5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5zaXplICE9IDApCi0gICAg ICAgICAgICAgICAgICAgIGlmICgrK25ld19iaW9zX2VudHJ5ID49IEU4MjBNQVgpCisgICAgICAg ICAgICAgICAgICAgIGlmICgrK25ld19iaW9zX2VudHJ5ID49IEFSUkFZX1NJWkUobmV3X2Jpb3Mp KQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IAkvKiBubyBtb3JlIHNwYWNlIGxlZnQg Zm9yIG5ldyBiaW9zIGVudHJpZXMgKi8KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChj dXJyZW50X3R5cGUgIT0gMCkJewpAQCAtNTA4LDE3ICs1MTAsMTQgQEAgc3RhdGljIHZvaWQgX19p bml0IHJlc2VydmVfZG1pX3JlZ2lvbih2b2lkKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgX19p bml0IG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKAotICAgIHN0cnVjdCBlODIwZW50cnkg KnJhdywgdW5zaWduZWQgaW50ICpyYXdfbnIpCitzdGF0aWMgdm9pZCBfX2luaXQgbWFjaGluZV9z cGVjaWZpY19tZW1vcnlfc2V0dXAoc3RydWN0IGU4MjBtYXAgKnJhdykKIHsKICAgICB1bnNpZ25l ZCBsb25nIG1wdF9saW1pdCwgcm9fbXB0X2xpbWl0OwogICAgIHVpbnQ2NF90IHRvcF9vZl9yYW0s IHNpemU7CiAgICAgaW50IGk7CiAKLSAgICBjaGFyIG5yID0gKGNoYXIpKnJhd19ucjsKLSAgICBz YW5pdGl6ZV9lODIwX21hcChyYXcsICZucik7Ci0gICAgKnJhd19uciA9IG5yOwotICAgICh2b2lk KWNvcHlfZTgyMF9tYXAocmF3LCBucik7CisgICAgc2FuaXRpemVfZTgyMF9tYXAocmF3LT5tYXAs ICZyYXctPm5yX21hcCk7CisgICAgY29weV9lODIwX21hcChyYXctPm1hcCwgcmF3LT5ucl9tYXAp OwogCiAgICAgaWYgKCBvcHRfbWVtICkKICAgICAgICAgY2xpcF90b19saW1pdChvcHRfbWVtLCBO VUxMKTsKQEAgLTY5MSwxNiArNjkwLDE1IEBAIGludCBfX2luaXQgcmVzZXJ2ZV9lODIwX3JhbShz dHJ1Y3QgZTgyMG1hcCAqZTgyMCwgdWludDY0X3QgcywgdWludDY0X3QgZSkKICAgICByZXR1cm4g ZTgyMF9jaGFuZ2VfcmFuZ2VfdHlwZShlODIwLCBzLCBlLCBFODIwX1JBTSwgRTgyMF9SRVNFUlZF RCk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgX19pbml0IGluaXRfZTgyMCgKLSAgICBjb25zdCBjaGFy ICpzdHIsIHN0cnVjdCBlODIwZW50cnkgKnJhdywgdW5zaWduZWQgaW50ICpyYXdfbnIpCit1bnNp Z25lZCBsb25nIF9faW5pdCBpbml0X2U4MjAoY29uc3QgY2hhciAqc3RyLCBzdHJ1Y3QgZTgyMG1h cCAqcmF3KQogewogICAgIGlmICggZTgyMF92ZXJib3NlICkKICAgICB7CiAgICAgICAgIHByaW50 aygiSW5pdGlhbCAlcyBSQU0gbWFwOlxuIiwgc3RyKTsKLSAgICAgICAgcHJpbnRfZTgyMF9tZW1v cnlfbWFwKHJhdywgKnJhd19ucik7CisgICAgICAgIHByaW50X2U4MjBfbWVtb3J5X21hcChyYXct Pm1hcCwgcmF3LT5ucl9tYXApOwogICAgIH0KIAotICAgIG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5 X3NldHVwKHJhdywgcmF3X25yKTsKKyAgICBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cChy YXcpOwogCiAgICAgcHJpbnRrKCIlcyBSQU0gbWFwOlxuIiwgc3RyKTsKICAgICBwcmludF9lODIw X21lbW9yeV9tYXAoZTgyMC5tYXAsIGU4MjAubnJfbWFwKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9lZmkvZWZpLWJvb3QuaCBiL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaAppbmRleCAw ZTFjMTkwLi4zNDUzN2Q0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgK KysrIGIveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCkBAIC0xNTYsOCArMTU2LDggQEAgc3Rh dGljIHZvaWQgX19pbml0IGVmaV9hcmNoX3Byb2Nlc3NfbWVtb3J5X21hcChFRklfU1lTVEVNX1RB QkxFICpTeXN0ZW1UYWJsZSwKICAgICB1bnNpZ25lZCBpbnQgaTsKIAogICAgIC8qIFBvcHVsYXRl IEU4MjAgdGFibGUgYW5kIGNoZWNrIHRyYW1wb2xpbmUgYXJlYSBhdmFpbGFiaWxpdHkuICovCi0g ICAgZSA9IGU4MjBtYXAgLSAxOwotICAgIGZvciAoIGU4MjBuciA9IGkgPSAwOyBpIDwgbWFwX3Np emU7IGkgKz0gZGVzY19zaXplICkKKyAgICBlID0gZTgyMF9yYXcubWFwIC0gMTsKKyAgICBmb3Ig KCBlODIwX3Jhdy5ucl9tYXAgPSBpID0gMDsgaSA8IG1hcF9zaXplOyBpICs9IGRlc2Nfc2l6ZSAp CiAgICAgewogICAgICAgICBFRklfTUVNT1JZX0RFU0NSSVBUT1IgKmRlc2MgPSBtYXAgKyBpOwog ICAgICAgICB1NjQgbGVuID0gZGVzYy0+TnVtYmVyT2ZQYWdlcyA8PCBFRklfUEFHRV9TSElGVDsK QEAgLTE5NCwxMCArMTk0LDEwIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBlZmlfYXJjaF9wcm9jZXNz X21lbW9yeV9tYXAoRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUsCiAgICAgICAgICAgICB0 eXBlID0gRTgyMF9OVlM7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBp ZiAoIGU4MjBuciAmJiB0eXBlID09IGUtPnR5cGUgJiYKKyAgICAgICAgaWYgKCBlODIwX3Jhdy5u cl9tYXAgJiYgdHlwZSA9PSBlLT50eXBlICYmCiAgICAgICAgICAgICAgZGVzYy0+UGh5c2ljYWxT dGFydCA9PSBlLT5hZGRyICsgZS0+c2l6ZSApCiAgICAgICAgICAgICBlLT5zaXplICs9IGxlbjsK LSAgICAgICAgZWxzZSBpZiAoICFsZW4gfHwgZTgyMG5yID49IEU4MjBNQVggKQorICAgICAgICBl bHNlIGlmICggIWxlbiB8fCBlODIwX3Jhdy5ucl9tYXAgPj0gQVJSQVlfU0laRShlODIwX3Jhdy5t YXApICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBlbHNlCiAgICAgICAgIHsKQEAg LTIwNSw3ICsyMDUsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZWZpX2FyY2hfcHJvY2Vzc19tZW1v cnlfbWFwKEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlLAogICAgICAgICAgICAgZS0+YWRk ciA9IGRlc2MtPlBoeXNpY2FsU3RhcnQ7CiAgICAgICAgICAgICBlLT5zaXplID0gbGVuOwogICAg ICAgICAgICAgZS0+dHlwZSA9IHR5cGU7Ci0gICAgICAgICAgICArK2U4MjBucjsKKyAgICAgICAg ICAgICsrZTgyMF9yYXcubnJfbWFwOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCmluZGV4IDFjZDI5MGUu LmVkOTU3ZTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCisrKyBiL3hlbi9hcmNo L3g4Ni9zZXR1cC5jCkBAIC02MzYsNyArNjM2LDcgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19z dGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKIHsKICAgICBjaGFyICptZW1tYXBfdHlwZSA9 IE5VTEw7CiAgICAgY2hhciAqY21kbGluZSwgKmtleHRyYSwgKmxvYWRlcjsKLSAgICB1bnNpZ25l ZCBpbnQgaW5pdHJkaWR4LCBkb21jcl9mbGFncyA9IERPTUNSRl9zM19pbnRlZ3JpdHk7CisgICAg dW5zaWduZWQgaW50IG5yX2U4MjAsIGluaXRyZGlkeCwgZG9tY3JfZmxhZ3MgPSBET01DUkZfczNf aW50ZWdyaXR5OwogICAgIG11bHRpYm9vdF9pbmZvX3QgKm1iaSA9IF9fdmEobWJpX3ApOwogICAg IG1vZHVsZV90ICptb2QgPSAobW9kdWxlX3QgKilfX3ZhKG1iaS0+bW9kc19hZGRyKTsKICAgICB1 bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCByYXdfbWF4X3BhZ2UsIG1vZHVsZXNfaGVhZHJvb20sICpt b2R1bGVfbWFwOwpAQCAtNzgyLDE0ICs3ODIsMTcgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19z dGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICB9CiAgICAgZWxzZSBpZiAoIGVmaV9l bmFibGVkKEVGSV9CT09UKSApCiAgICAgICAgIG1lbW1hcF90eXBlID0gIkVGSSI7Ci0gICAgZWxz ZSBpZiAoIGU4MjBfcmF3X25yICE9IDAgKQorICAgIGVsc2UgaWYgKCAobnJfZTgyMCA9IGNvcHlf Ymlvc19lODIwKGU4MjBfcmF3Lm1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBUlJBWV9TSVpFKGU4MjBfcmF3Lm1hcCkpKSAhPSAwICkKICAgICB7CiAgICAgICAg IG1lbW1hcF90eXBlID0gIlhlbi1lODIwIjsKKyAgICAgICAgZTgyMF9yYXcubnJfbWFwID0gbnJf ZTgyMDsKICAgICB9CiAgICAgZWxzZSBpZiAoIG1iaS0+ZmxhZ3MgJiBNQklfTUVNTUFQICkKICAg ICB7CiAgICAgICAgIG1lbW1hcF90eXBlID0gIk11bHRpYm9vdC1lODIwIjsKLSAgICAgICAgd2hp bGUgKCAoYnl0ZXMgPCBtYmktPm1tYXBfbGVuZ3RoKSAmJiAoZTgyMF9yYXdfbnIgPCBFODIwTUFY KSApCisgICAgICAgIHdoaWxlICggYnl0ZXMgPCBtYmktPm1tYXBfbGVuZ3RoICYmCisgICAgICAg ICAgICAgICAgZTgyMF9yYXcubnJfbWFwIDwgQVJSQVlfU0laRShlODIwX3Jhdy5tYXApICkKICAg ICAgICAgewogICAgICAgICAgICAgbWVtb3J5X21hcF90ICptYXAgPSBfX3ZhKG1iaS0+bW1hcF9h ZGRyICsgYnl0ZXMpOwogCkBAIC04MTMsMTIgKzgxNiwxMiBAQCB2b2lkIF9faW5pdCBub3JldHVy biBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAgICAgICAgICAgIG1hcC0+ bGVuZ3RoX2hpZ2ggPSAwOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBlODIwX3Jhd1tl ODIwX3Jhd19ucl0uYWRkciA9IAorICAgICAgICAgICAgZTgyMF9yYXcubWFwW2U4MjBfcmF3Lm5y X21hcF0uYWRkciA9CiAgICAgICAgICAgICAgICAgKCh1NjQpbWFwLT5iYXNlX2FkZHJfaGlnaCA8 PCAzMikgfCAodTY0KW1hcC0+YmFzZV9hZGRyX2xvdzsKLSAgICAgICAgICAgIGU4MjBfcmF3W2U4 MjBfcmF3X25yXS5zaXplID0gCisgICAgICAgICAgICBlODIwX3Jhdy5tYXBbZTgyMF9yYXcubnJf bWFwXS5zaXplID0KICAgICAgICAgICAgICAgICAoKHU2NCltYXAtPmxlbmd0aF9oaWdoIDw8IDMy KSB8ICh1NjQpbWFwLT5sZW5ndGhfbG93OwotICAgICAgICAgICAgZTgyMF9yYXdbZTgyMF9yYXdf bnJdLnR5cGUgPSBtYXAtPnR5cGU7Ci0gICAgICAgICAgICBlODIwX3Jhd19ucisrOworICAgICAg ICAgICAgZTgyMF9yYXcubWFwW2U4MjBfcmF3Lm5yX21hcF0udHlwZSA9IG1hcC0+dHlwZTsKKyAg ICAgICAgICAgIGU4MjBfcmF3Lm5yX21hcCsrOwogCiAgICAgICAgICAgICBieXRlcyArPSBtYXAt PnNpemUgKyA0OwogICAgICAgICB9CkBAIC04MjYsMzAgKzgyOSwzMCBAQCB2b2lkIF9faW5pdCBu b3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgIGVsc2UgaWYgKCBi b290c3ltKGxvd21lbV9rYikgKQogICAgIHsKICAgICAgICAgbWVtbWFwX3R5cGUgPSAiWGVuLWU4 MDEiOwotICAgICAgICBlODIwX3Jhd1swXS5hZGRyID0gMDsKLSAgICAgICAgZTgyMF9yYXdbMF0u c2l6ZSA9IGJvb3RzeW0obG93bWVtX2tiKSA8PCAxMDsKLSAgICAgICAgZTgyMF9yYXdbMF0udHlw ZSA9IEU4MjBfUkFNOwotICAgICAgICBlODIwX3Jhd1sxXS5hZGRyID0gMHgxMDAwMDA7Ci0gICAg ICAgIGU4MjBfcmF3WzFdLnNpemUgPSBib290c3ltKGhpZ2htZW1fa2IpIDw8IDEwOwotICAgICAg ICBlODIwX3Jhd1sxXS50eXBlID0gRTgyMF9SQU07Ci0gICAgICAgIGU4MjBfcmF3X25yID0gMjsK KyAgICAgICAgZTgyMF9yYXcubWFwWzBdLmFkZHIgPSAwOworICAgICAgICBlODIwX3Jhdy5tYXBb MF0uc2l6ZSA9IGJvb3RzeW0obG93bWVtX2tiKSA8PCAxMDsKKyAgICAgICAgZTgyMF9yYXcubWFw WzBdLnR5cGUgPSBFODIwX1JBTTsKKyAgICAgICAgZTgyMF9yYXcubWFwWzFdLmFkZHIgPSAweDEw MDAwMDsKKyAgICAgICAgZTgyMF9yYXcubWFwWzFdLnNpemUgPSBib290c3ltKGhpZ2htZW1fa2Ip IDw8IDEwOworICAgICAgICBlODIwX3Jhdy5tYXBbMV0udHlwZSA9IEU4MjBfUkFNOworICAgICAg ICBlODIwX3Jhdy5ucl9tYXAgPSAyOwogICAgIH0KICAgICBlbHNlIGlmICggbWJpLT5mbGFncyAm IE1CSV9NRU1MSU1JVFMgKQogICAgIHsKICAgICAgICAgbWVtbWFwX3R5cGUgPSAiTXVsdGlib290 LWU4MDEiOwotICAgICAgICBlODIwX3Jhd1swXS5hZGRyID0gMDsKLSAgICAgICAgZTgyMF9yYXdb MF0uc2l6ZSA9IG1iaS0+bWVtX2xvd2VyIDw8IDEwOwotICAgICAgICBlODIwX3Jhd1swXS50eXBl ID0gRTgyMF9SQU07Ci0gICAgICAgIGU4MjBfcmF3WzFdLmFkZHIgPSAweDEwMDAwMDsKLSAgICAg ICAgZTgyMF9yYXdbMV0uc2l6ZSA9IG1iaS0+bWVtX3VwcGVyIDw8IDEwOwotICAgICAgICBlODIw X3Jhd1sxXS50eXBlID0gRTgyMF9SQU07Ci0gICAgICAgIGU4MjBfcmF3X25yID0gMjsKKyAgICAg ICAgZTgyMF9yYXcubWFwWzBdLmFkZHIgPSAwOworICAgICAgICBlODIwX3Jhdy5tYXBbMF0uc2l6 ZSA9IG1iaS0+bWVtX2xvd2VyIDw8IDEwOworICAgICAgICBlODIwX3Jhdy5tYXBbMF0udHlwZSA9 IEU4MjBfUkFNOworICAgICAgICBlODIwX3Jhdy5tYXBbMV0uYWRkciA9IDB4MTAwMDAwOworICAg ICAgICBlODIwX3Jhdy5tYXBbMV0uc2l6ZSA9IG1iaS0+bWVtX3VwcGVyIDw8IDEwOworICAgICAg ICBlODIwX3Jhdy5tYXBbMV0udHlwZSA9IEU4MjBfUkFNOworICAgICAgICBlODIwX3Jhdy5ucl9t YXAgPSAyOwogICAgIH0KICAgICBlbHNlCiAgICAgICAgIHBhbmljKCJCb290bG9hZGVyIHByb3Zp ZGVkIG5vIG1lbW9yeSBpbmZvcm1hdGlvbi4iKTsKIAogICAgIC8qIFNhbml0aXNlIHRoZSByYXcg RTgyMCBtYXAgdG8gcHJvZHVjZSBhIGZpbmFsIGNsZWFuIHZlcnNpb24uICovCi0gICAgbWF4X3Bh Z2UgPSByYXdfbWF4X3BhZ2UgPSBpbml0X2U4MjAobWVtbWFwX3R5cGUsIGU4MjBfcmF3LCAmZTgy MF9yYXdfbnIpOworICAgIG1heF9wYWdlID0gcmF3X21heF9wYWdlID0gaW5pdF9lODIwKG1lbW1h cF90eXBlLCAmZTgyMF9yYXcpOwogCiAgICAgLyogQ3JlYXRlIGEgdGVtcG9yYXJ5IGNvcHkgb2Yg dGhlIEU4MjAgbWFwLiAqLwogICAgIG1lbWNweSgmYm9vdF9lODIwLCAmZTgyMCwgc2l6ZW9mKGU4 MjApKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZTgyMC5oIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9lODIwLmgKaW5kZXggZDlmZjRlYi4uYTJkNDY4ZiAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9lODIwLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9lODIwLmgK QEAgLTMwLDE1ICszMCwxNCBAQCBleHRlcm4gaW50IGU4MjBfY2hhbmdlX3JhbmdlX3R5cGUoCiAg ICAgdWludDMyX3Qgb3JpZ190eXBlLCB1aW50MzJfdCBuZXdfdHlwZSk7CiBleHRlcm4gaW50IGU4 MjBfYWRkX3JhbmdlKAogICAgIHN0cnVjdCBlODIwbWFwICosIHVpbnQ2NF90IHMsIHVpbnQ2NF90 IGUsIHVpbnQzMl90IHR5cGUpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9lODIwKGNvbnN0 IGNoYXIgKiwgc3RydWN0IGU4MjBlbnRyeSAqLCB1bnNpZ25lZCBpbnQgKik7CitleHRlcm4gdW5z aWduZWQgbG9uZyBpbml0X2U4MjAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgZTgyMG1hcCAqKTsKIGV4 dGVybiBzdHJ1Y3QgZTgyMG1hcCBlODIwOworZXh0ZXJuIHN0cnVjdCBlODIwbWFwIGU4MjBfcmF3 OwogCiAvKiBUaGVzZSBzeW1ib2xzIGxpdmUgaW4gdGhlIGJvb3QgdHJhbXBvbGluZS4gKi8KLWV4 dGVybiBzdHJ1Y3QgZTgyMGVudHJ5IGU4MjBtYXBbXTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgZTgy MG5yOwogZXh0ZXJuIHVuc2lnbmVkIGludCBsb3dtZW1fa2IsIGhpZ2htZW1fa2I7Cit1bnNpZ25l ZCBpbnQgZTgyMG1hcF9jb3B5KHN0cnVjdCBlODIwZW50cnkgKm1hcCwgdW5zaWduZWQgaW50IGxp bWl0KTsKIAotI2RlZmluZSBlODIwX3JhdyBib290c3ltKGU4MjBtYXApCi0jZGVmaW5lIGU4MjBf cmF3X25yIGJvb3RzeW0oZTgyMG5yKQorI2RlZmluZSBjb3B5X2Jpb3NfZTgyMCBib290c3ltKGU4 MjBtYXBfY29weSkKIAogI2VuZGlmIC8qX19FODIwX0hFQURFUiovCi0tIAoyLjEwLjIKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK