From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 18/21] xen/arm: Allow vpl011 to be used by DomU Date: Fri, 6 Jul 2018 16:12:13 -0700 Message-ID: <1530918736-13965-18-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: julien.grall@arm.com Cc: Stefano Stabellini , sstabellini@kernel.org, andrii_anisov@epam.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org TWFrZSB2cGwwMTEgYmVpbmcgYWJsZSB0byBiZSB1c2VkIHdpdGhvdXQgYSB1c2Vyc3BhY2UgY29t cG9uZW50IGluIERvbTAuCkluIHRoYXQgY2FzZSwgb3V0cHV0IGlzIHByaW50ZWQgdG8gdGhlIFhl biBzZXJpYWwgYW5kIGlucHV0IGlzIHJlY2VpdmVkCmZyb20gdGhlIFhlbiBzZXJpYWwgb25lIGNo YXJhY3RlciBhdCBhIHRpbWUuCgpDYWxsIGRvbWFpbl92cGwwMTFfaW5pdCBkdXJpbmcgY29uc3Ry dWN0X2RvbVUgaWYgdnBsMDExIGlzIGVuYWJsZWQuCgpJbnRyb2R1Y2UgYSBuZXcgcmluZyBzdHJ1 Y3Qgd2l0aCBvbmx5IHRoZSByaW5nIGFycmF5IHRvIGF2b2lkIGEgd2FzdGUgb2YKbWVtb3J5LiBJ bnRyb2R1Y2Ugc2VwYXJhdGUgcmVhZF9kYXRlIGFuZCB3cml0ZV9kYXRhIGZ1bmN0aW9ucyBmb3IK aW5pdGlhbCBkb21haW5zOiB2cGwwMTFfd3JpdGVfZGF0YV9ub3JpbmcgaXMgdmVyeSBzaW1wbGUg YW5kIGp1c3Qgd3JpdGVzCnRvIHRoZSBjb25zb2xlLCB3aGlsZSB2cGwwMTFfcmVhZF9kYXRhX2lu cmluZyBpcyBhIGR1cGxpY2F0ZSBvZgp2cGwwMTFfcmVhZF9kYXRhLiBBbHRob3VnaCB0ZXh0dWFs bHkgYWxtb3N0IGlkZW50aWNhbCwgd2UgYXJlIGZvcmNlZCB0bwpkdXBsaWNhdGUgdGhlIGZ1bmN0 aW9ucyBiZWNhdXNlIHRoZSBzdHJ1Y3QgbGF5b3V0IGlzIGRpZmZlcmVudC4KClNpZ25lZC1vZmYt Ynk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFub3NAeGlsaW54LmNvbT4KLS0tCkNoYW5nZXMg aW4gdjI6Ci0gb25seSBpbml0IGlmIHZwbDAxMQotIHJlbmFtZSB2cGwwMTFfcmVhZF9jaGFyIHRv IHZwbDAxMV9yeF9jaGFyCi0gcmVtb3ZlIHNwdXJpb3VzIGNoYW5nZQotIGZpeCBjb2Rpbmcgc3R5 bGUKLSB1c2UgZGlmZmVyZW50IHJpbmcgc3RydWN0Ci0gbW92ZSB0aGUgd3JpdGVfZGF0YSBjaGFu Z2VzIHRvIHRoZWlyIG93biBmdW5jdGlvbgogICh2cGwwMTFfd3JpdGVfZGF0YV9ub3JpbmcpCi0g ZHVwbGljYXRlIHZwbDAxMV9yZWFkX2RhdGEKLS0tCiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxk LmMgIHwgIDEwICsrLQogeGVuL2FyY2gvYXJtL3ZwbDAxMS5jICAgICAgICB8IDE4NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS9hc20tYXJt L3ZwbDAxMS5oIHwgIDEwICsrKwogMyBmaWxlcyBjaGFuZ2VkLCAxODIgaW5zZXJ0aW9ucygrKSwg MjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5j IGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCmluZGV4IDcxOGJlNDguLmQ3ZTkwNDAgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0v ZG9tYWluX2J1aWxkLmMKQEAgLTI1MzEsNyArMjUzMSwxNSBAQCBzdGF0aWMgaW50IF9faW5pdCBj b25zdHJ1Y3RfZG9tVShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5v ZGUpCiAgICAgaWYgKCByYyA8IDAgKQogICAgICAgICByZXR1cm4gcmM7CiAKLSAgICByZXR1cm4g X19jb25zdHJ1Y3RfZG9tYWluKGQsICZraW5mbyk7CisgICAgcmMgPSBfX2NvbnN0cnVjdF9kb21h aW4oZCwgJmtpbmZvKTsKKyAgICBpZiAoIHJjIDwgMCApCisgICAgICAgIHJldHVybiByYzsKKwor I2lmZGVmIENPTkZJR19TQlNBX1ZVQVJUX0NPTlNPTEUKKyAgICBpZiAoIHZwbDAxMSApCisgICAg ICAgIHJjID0gZG9tYWluX3ZwbDAxMV9pbml0KGQsIE5VTEwpOworI2VuZGlmCisgICAgcmV0dXJu IHJjOwogfQogCiBpbnQgX19pbml0IGNvbnN0cnVjdF9kb20wKHN0cnVjdCBkb21haW4gKmQpCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdnBsMDExLmMgYi94ZW4vYXJjaC9hcm0vdnBsMDExLmMK aW5kZXggZTc1OTU3Zi4uZDRhYWI2NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3ZwbDAxMS5j CisrKyBiL3hlbi9hcmNoL2FybS92cGwwMTEuYwpAQCAtODMsNiArODMsMTExIEBAIHN0YXRpYyB2 b2lkIHZwbDAxMV91cGRhdGVfaW50ZXJydXB0X3N0YXR1cyhzdHJ1Y3QgZG9tYWluICpkKQogI2Vu ZGlmCiB9CiAKK3ZvaWQgdnBsMDExX3J4X2NoYXIoc3RydWN0IGRvbWFpbiAqZCwgY2hhciBjKQor eworICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CisgICAgc3RydWN0IHZwbDAxMSAqdnBsMDExID0g JmQtPmFyY2gudnBsMDExOworICAgIHN0cnVjdCB4ZW5jb25zX2luICppbnRmID0gdnBsMDExLT5p bnJpbmc7CisgICAgWEVOQ09OU19SSU5HX0lEWCBpbl9jb25zLCBpbl9wcm9kLCBpbl9maWZvX2xl dmVsOworCisgICAgVlBMMDExX0xPQ0soZCwgZmxhZ3MpOworCisgICAgaW5fY29ucyA9IGludGYt PmluX2NvbnM7CisgICAgaW5fcHJvZCA9IGludGYtPmluX3Byb2Q7CisgICAgaWYgKCB4ZW5jb25z X3F1ZXVlZChpbl9wcm9kLCBpbl9jb25zLCBzaXplb2YoaW50Zi0+aW4pKSA9PSBzaXplb2YoaW50 Zi0+aW4pICkKKyAgICB7CisgICAgICAgIFZQTDAxMV9VTkxPQ0soZCwgZmxhZ3MpOworICAgICAg ICByZXR1cm47CisgICAgfQorCisgICAgaW50Zi0+aW5beGVuY29uc19tYXNrKGluX3Byb2QsIHNp emVvZihpbnRmLT5pbikpXSA9IGM7CisgICAgaW50Zi0+aW5fcHJvZCA9IGluX3Byb2QgKyAxOwor CisgICAgaW5fZmlmb19sZXZlbCA9IHhlbmNvbnNfcXVldWVkKGluX3Byb2QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluX2NvbnMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZihpbnRmLT5pbikpOworCisgICAgdnBsMDExX2RhdGFfYXZhaWwo ZCwgaW5fZmlmb19sZXZlbCwgc2l6ZW9mKGludGYtPmluKSwgMCwgMTAyNCk7CisgICAgVlBMMDEx X1VOTE9DSyhkLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIHZwbDAxMV93cml0ZV9kYXRhX25v cmluZyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IGRhdGEpCit7CisgICAgdW5zaWduZWQgbG9u ZyBmbGFnczsKKyAgICBzdHJ1Y3QgdnBsMDExICp2cGwwMTEgPSAmZC0+YXJjaC52cGwwMTE7CisK KyAgICBWUEwwMTFfTE9DSyhkLCBmbGFncyk7CisKKyAgICBwcmludGsoIiVjIiwgZGF0YSk7Cisg ICAgaWYgKGRhdGEgPT0gJ1xuJykKKyAgICAgICAgcHJpbnRrKCJET00ldTogIiwgZC0+ZG9tYWlu X2lkKTsKKworICAgIHZwbDAxMS0+dWFydHJpcyB8PSBUWEk7CisgICAgdnBsMDExLT51YXJ0ZnIg Jj0gflRYRkU7CisgICAgdnBsMDExX3VwZGF0ZV9pbnRlcnJ1cHRfc3RhdHVzKGQpOworCisgICAg VlBMMDExX1VOTE9DSyhkLCBmbGFncyk7Cit9CisKK3N0YXRpYyB1aW50OF90IHZwbDAxMV9yZWFk X2RhdGFfaW5yaW5nKHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgdW5zaWduZWQgbG9uZyBmbGFn czsKKyAgICB1aW50OF90IGRhdGEgPSAwOworICAgIHN0cnVjdCB2cGwwMTEgKnZwbDAxMSA9ICZk LT5hcmNoLnZwbDAxMTsKKyAgICBzdHJ1Y3QgeGVuY29uc19pbiAqaW50ZiA9IHZwbDAxMS0+aW5y aW5nOworICAgIFhFTkNPTlNfUklOR19JRFggaW5fY29ucywgaW5fcHJvZDsKKworICAgIFZQTDAx MV9MT0NLKGQsIGZsYWdzKTsKKworICAgIGluX2NvbnMgPSBpbnRmLT5pbl9jb25zOworICAgIGlu X3Byb2QgPSBpbnRmLT5pbl9wcm9kOworCisgICAgc21wX3JtYigpOworCisgICAgLyoKKyAgICAg KiBJdCBpcyBleHBlY3RlZCB0aGF0IHRoZXJlIHdpbGwgYmUgZGF0YSBpbiB0aGUgcmluZyBidWZm ZXIgd2hlbiB0aGlzCisgICAgICogZnVuY3Rpb24gaXMgY2FsbGVkIHNpbmNlIHRoZSBndWVzdCBp cyBleHBlY3RlZCB0byByZWFkIHRoZSBkYXRhIHJlZ2lzdGVyCisgICAgICogb25seSBpZiB0aGUg VFhGRSBmbGFnIGlzIG5vdCBzZXQuCisgICAgICogSWYgdGhlIGd1ZXN0IHN0aWxsIGRvZXMgcmVh ZCB3aGVuIFRYRkUgYml0IGlzIHNldCB0aGVuIDAgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKi8K KyAgICBpZiAoIHhlbmNvbnNfcXVldWVkKGluX3Byb2QsIGluX2NvbnMsIHNpemVvZihpbnRmLT5p bikpID4gMCApCisgICAgeworICAgICAgICB1bnNpZ25lZCBpbnQgZmlmb19sZXZlbDsKKworICAg ICAgICBkYXRhID0gaW50Zi0+aW5beGVuY29uc19tYXNrKGluX2NvbnMsIHNpemVvZihpbnRmLT5p bikpXTsKKyAgICAgICAgaW5fY29ucyArPSAxOworICAgICAgICBzbXBfbWIoKTsKKyAgICAgICAg aW50Zi0+aW5fY29ucyA9IGluX2NvbnM7CisKKyAgICAgICAgZmlmb19sZXZlbCA9IHhlbmNvbnNf cXVldWVkKGluX3Byb2QsIGluX2NvbnMsIHNpemVvZihpbnRmLT5pbikpOworCisgICAgICAgIC8q IElmIHRoZSBGSUZPIGlzIG5vdyBlbXB0eSwgd2UgY2xlYXIgdGhlIHJlY2VpdmUgdGltZW91dCBp bnRlcnJ1cHQuICovCisgICAgICAgIGlmICggZmlmb19sZXZlbCA9PSAwICkKKyAgICAgICAgewor ICAgICAgICAgICAgdnBsMDExLT51YXJ0ZnIgfD0gUlhGRTsKKyAgICAgICAgICAgIHZwbDAxMS0+ dWFydHJpcyAmPSB+UlRJOworICAgICAgICB9CisKKyAgICAgICAgLyogSWYgdGhlIEZJRk8gaXMg bW9yZSB0aGFuIGhhbGYgZW1wdHksIHdlIGNsZWFyIHRoZSBSWCBpbnRlcnJ1cHQuICovCisgICAg ICAgIGlmICggZmlmb19sZXZlbCA8IHNpemVvZihpbnRmLT5pbikgLSBTQlNBX1VBUlRfRklGT19M RVZFTCApCisgICAgICAgICAgICB2cGwwMTEtPnVhcnRyaXMgJj0gflJYSTsKKworICAgICAgICB2 cGwwMTFfdXBkYXRlX2ludGVycnVwdF9zdGF0dXMoZCk7CisgICAgfQorICAgIGVsc2UKKyAgICAg ICAgZ3ByaW50ayhYRU5MT0dfRVJSLCAidnBsMDExOiBVbmV4cGVjdGVkIElOIHJpbmcgYnVmZmVy IGVtcHR5XG4iKTsKKworICAgIC8qCisgICAgICogV2UgaGF2ZSBjb25zdW1lZCBhIGNoYXJhY3Rl ciBvciB0aGUgRklGTyB3YXMgZW1wdHksIHNvIGNsZWFyIHRoZQorICAgICAqICJGSUZPIGZ1bGwi IGJpdC4KKyAgICAgKi8KKyAgICB2cGwwMTEtPnVhcnRmciAmPSB+UlhGRjsKKworICAgIFZQTDAx MV9VTkxPQ0soZCwgZmxhZ3MpOworCisgICAgcmV0dXJuIGRhdGE7Cit9CisKIHN0YXRpYyB1aW50 OF90IHZwbDAxMV9yZWFkX2RhdGEoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICB1bnNpZ25lZCBs b25nIGZsYWdzOwpAQCAtMjQ2LDcgKzM1MSwxMCBAQCBzdGF0aWMgaW50IHZwbDAxMV9tbWlvX3Jl YWQoc3RydWN0IHZjcHUgKnYsCiAgICAgY2FzZSBEUjoKICAgICAgICAgaWYgKCAhdnBsMDExX3Jl ZzMyX2NoZWNrX2FjY2VzcyhkYWJ0KSApIGdvdG8gYmFkX3dpZHRoOwogCi0gICAgICAgICpyID0g dnJlZ19yZWczMl9leHRyYWN0KHZwbDAxMV9yZWFkX2RhdGEoZCksIGluZm8pOworICAgICAgICBp ZiAoIHZwbDAxMS0+cmluZ19lbmFibGUgKQorICAgICAgICAgICAgKnIgPSB2cmVnX3JlZzMyX2V4 dHJhY3QodnBsMDExX3JlYWRfZGF0YShkKSwgaW5mbyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg ICAgICpyID0gdnJlZ19yZWczMl9leHRyYWN0KHZwbDAxMV9yZWFkX2RhdGFfaW5yaW5nKGQpLCBp bmZvKTsKICAgICAgICAgcmV0dXJuIDE7CiAKICAgICBjYXNlIFJTUjoKQEAgLTMzMSw3ICs0Mzks MTAgQEAgc3RhdGljIGludCB2cGwwMTFfbW1pb193cml0ZShzdHJ1Y3QgdmNwdSAqdiwKIAogICAg ICAgICB2cmVnX3JlZzMyX3VwZGF0ZSgmZGF0YSwgciwgaW5mbyk7CiAgICAgICAgIGRhdGEgJj0g MHhGRjsKLSAgICAgICAgdnBsMDExX3dyaXRlX2RhdGEodi0+ZG9tYWluLCBkYXRhKTsKKyAgICAg ICAgaWYgKCB2cGwwMTEtPnJpbmdfZW5hYmxlICkKKyAgICAgICAgICAgIHZwbDAxMV93cml0ZV9k YXRhKHYtPmRvbWFpbiwgZGF0YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZwbDAxMV93 cml0ZV9kYXRhX25vcmluZyh2LT5kb21haW4sIGRhdGEpOwogICAgICAgICByZXR1cm4gMTsKICAg ICB9CiAKQEAgLTQ3NiwyNyArNTg3LDQ3IEBAIGludCBkb21haW5fdnBsMDExX2luaXQoc3RydWN0 IGRvbWFpbiAqZCwgc3RydWN0IHZwbDAxMV9pbml0X2luZm8gKmluZm8pCiAgICAgaWYgKCB2cGww MTEtPnJpbmcucmluZ19idWYgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIC8qIE1h cCB0aGUgZ3Vlc3QgUEZOIHRvIFhlbiBhZGRyZXNzIHNwYWNlLiAqLwotICAgIHJjID0gIHByZXBh cmVfcmluZ19mb3JfaGVscGVyKGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2ZuX3goaW5mby0+Z2ZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdnBs MDExLT5yaW5nLnJpbmdfcGFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm dnBsMDExLT5yaW5nLnJpbmdfYnVmKTsKLSAgICBpZiAoIHJjIDwgMCApCi0gICAgICAgIGdvdG8g b3V0OworICAgIC8qCisgICAgICogaW5mbyBpcyBOVUxMIGZvciBkb21VcyBzdGFydGVkIGJ5IFhl biBhdCBib290IHRpbWUsIHdpdGggbm8KKyAgICAgKiBjb3JyZXNwb25kaW5nIHVzZXJzcGFjZSBj b21wb25lbnQgaW4gZG9tMAorICAgICAqLworICAgIGlmICggaW5mbyAhPSBOVUxMICkKKyAgICB7 CisgICAgICAgIHZwbDAxMS0+cmluZ19lbmFibGUgPSB0cnVlOworCisgICAgICAgIC8qIE1hcCB0 aGUgZ3Vlc3QgUEZOIHRvIFhlbiBhZGRyZXNzIHNwYWNlLiAqLworICAgICAgICByYyA9ICBwcmVw YXJlX3JpbmdfZm9yX2hlbHBlcihkLAorICAgICAgICAgICAgICAgIGdmbl94KGluZm8tPmdmbiks CisgICAgICAgICAgICAgICAgJnZwbDAxMS0+cmluZy5yaW5nX3BhZ2UsCisgICAgICAgICAgICAg ICAgJnZwbDAxMS0+cmluZy5yaW5nX2J1Zik7CisgICAgICAgIGlmICggcmMgPCAwICkKKyAgICAg ICAgICAgIGdvdG8gb3V0OworCisgICAgICAgIHJjID0gYWxsb2NfdW5ib3VuZF94ZW5fZXZlbnRf Y2hhbm5lbChkLCAwLCBpbmZvLT5jb25zb2xlX2RvbWlkLAorICAgICAgICAgICAgICAgIHZwbDAx MV9ub3RpZmljYXRpb24pOworICAgICAgICBpZiAoIHJjIDwgMCApCisgICAgICAgICAgICBnb3Rv IG91dDE7CisKKyAgICAgICAgdnBsMDExLT5ldnRjaG4gPSBpbmZvLT5ldnRjaG4gPSByYzsKKyAg ICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgdnBsMDExLT5yaW5nX2VuYWJsZSA9IGZhbHNl OworCisgICAgICAgIHZwbDAxMS0+aW5yaW5nID0geHphbGxvYyhzdHJ1Y3QgeGVuY29uc19pbik7 CisgICAgICAgIGlmICggdnBsMDExLT5pbnJpbmcgPT0gTlVMTCApCisgICAgICAgIHsKKyAgICAg ICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgICAgIGdvdG8gb3V0MTsKKyAgICAgICAgfQor ICAgIH0KIAogICAgIHJjID0gdmdpY19yZXNlcnZlX3ZpcnEoZCwgR1VFU1RfVlBMMDExX1NQSSk7 CiAgICAgaWYgKCAhcmMgKQogICAgIHsKICAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBn b3RvIG91dDE7Ci0gICAgfQotCi0gICAgcmMgPSBhbGxvY191bmJvdW5kX3hlbl9ldmVudF9jaGFu bmVsKGQsIDAsIGluZm8tPmNvbnNvbGVfZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZwbDAxMV9ub3RpZmljYXRpb24pOwotICAgIGlmICggcmMgPCAwICkK ICAgICAgICAgZ290byBvdXQyOwotCi0gICAgdnBsMDExLT5ldnRjaG4gPSBpbmZvLT5ldnRjaG4g PSByYzsKKyAgICB9CiAKICAgICBzcGluX2xvY2tfaW5pdCgmdnBsMDExLT5sb2NrKTsKIApAQCAt NTA5LDcgKzY0MCwxMCBAQCBvdXQyOgogICAgIHZnaWNfZnJlZV92aXJxKGQsIEdVRVNUX1ZQTDAx MV9TUEkpOwogCiBvdXQxOgotICAgIGRlc3Ryb3lfcmluZ19mb3JfaGVscGVyKCZ2cGwwMTEtPnJp bmcucmluZ19idWYsIHZwbDAxMS0+cmluZy5yaW5nX3BhZ2UpOworICAgIGlmICggdnBsMDExLT5y aW5nX2VuYWJsZSApCisgICAgICAgIGRlc3Ryb3lfcmluZ19mb3JfaGVscGVyKCZ2cGwwMTEtPnJp bmcucmluZ19idWYsIHZwbDAxMS0+cmluZy5yaW5nX3BhZ2UpOworICAgIGVsc2UKKyAgICAgICAg eGZyZWUodnBsMDExLT5pbnJpbmcpOwogCiBvdXQ6CiAgICAgcmV0dXJuIHJjOwpAQCAtNTE5LDEx ICs2NTMsMTggQEAgdm9pZCBkb21haW5fdnBsMDExX2RlaW5pdChzdHJ1Y3QgZG9tYWluICpkKQog ewogICAgIHN0cnVjdCB2cGwwMTEgKnZwbDAxMSA9ICZkLT5hcmNoLnZwbDAxMTsKIAotICAgIGlm ICggIXZwbDAxMS0+cmluZy5yaW5nX2J1ZiApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIHZw bDAxMS0+cmluZ19lbmFibGUgKQorICAgIHsKKyAgICAgICAgaWYgKCAhdnBsMDExLT5yaW5nLnJp bmdfYnVmICkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIGZyZWVfeGVuX2V2ZW50X2NoYW5u ZWwoZCwgdnBsMDExLT5ldnRjaG4pOwotICAgIGRlc3Ryb3lfcmluZ19mb3JfaGVscGVyKCZ2cGww MTEtPnJpbmcucmluZ19idWYsIHZwbDAxMS0+cmluZy5yaW5nX3BhZ2UpOworICAgICAgICBmcmVl X3hlbl9ldmVudF9jaGFubmVsKGQsIHZwbDAxMS0+ZXZ0Y2huKTsKKyAgICAgICAgZGVzdHJveV9y aW5nX2Zvcl9oZWxwZXIoJnZwbDAxMS0+cmluZy5yaW5nX2J1ZiwgdnBsMDExLT5yaW5nLnJpbmdf cGFnZSk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHhmcmVlKHZwbDAxMS0+aW5y aW5nKTsKKyAgICB9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3Zw bDAxMS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS92cGwwMTEuaAppbmRleCBjM2QzNzViLi5iZTQz YWJmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3ZwbDAxMS5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS1hcm0vdnBsMDExLmgKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgPHB1 YmxpYy9kb21jdGwuaD4KICNpbmNsdWRlIDxwdWJsaWMvaW8vcmluZy5oPgorI2luY2x1ZGUgPHB1 YmxpYy9pby9jb25zb2xlLmg+CiAjaW5jbHVkZSA8YXNtL3ZyZWcuaD4KICNpbmNsdWRlIDx4ZW4v bW0uaD4KIApAQCAtMzAsMTIgKzMxLDE5IEBACiAKICNkZWZpbmUgU0JTQV9VQVJUX0ZJRk9fU0la RSAzMgogCitzdHJ1Y3QgeGVuY29uc19pbiB7CisgICAgY2hhciBpblsxMDI0XTsKKyAgICBYRU5D T05TX1JJTkdfSURYIGluX2NvbnMsIGluX3Byb2Q7Cit9OworCiBzdHJ1Y3QgdnBsMDExIHsKKyAg ICBib29sIHJpbmdfZW5hYmxlOwogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKICAgICAg ICAgICAgIHZvaWQgKnJpbmdfYnVmOwogICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcmlu Z19wYWdlOwogICAgICAgICB9IHJpbmc7CisgICAgICAgIHN0cnVjdCB4ZW5jb25zX2luICppbnJp bmc7CiAgICAgfTsKICAgICB1aW50MzJfdCAgICB1YXJ0ZnI7ICAgICAgICAgLyogRmxhZyByZWdp c3RlciAqLwogICAgIHVpbnQzMl90ICAgIHVhcnRjcjsgICAgICAgICAvKiBDb250cm9sIHJlZ2lz dGVyICovCkBAIC01Nyw2ICs2NSw3IEBAIHN0cnVjdCB2cGwwMTFfaW5pdF9pbmZvIHsKIGludCBk b21haW5fdnBsMDExX2luaXQoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHZwbDAxMV9pbml0X2luZm8gKmluZm8pOwogdm9pZCBkb21haW5fdnBsMDExX2Rl aW5pdChzdHJ1Y3QgZG9tYWluICpkKTsKK3ZvaWQgdnBsMDExX3J4X2NoYXIoc3RydWN0IGRvbWFp biAqZCwgY2hhciBjKTsKICNlbHNlCiBzdGF0aWMgaW5saW5lIGludCBkb21haW5fdnBsMDExX2lu aXQoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdnBsMDExX2luaXRfaW5mbyAqaW5mbykKQEAgLTY1LDYgKzc0LDcgQEAgc3RhdGlj IGlubGluZSBpbnQgZG9tYWluX3ZwbDAxMV9pbml0KHN0cnVjdCBkb21haW4gKmQsCiB9CiAKIHN0 YXRpYyBpbmxpbmUgdm9pZCBkb21haW5fdnBsMDExX2RlaW5pdChzdHJ1Y3QgZG9tYWluICpkKSB7 IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCB2cGwwMTFfcnhfY2hhcihzdHJ1Y3QgZG9tYWluICpkLCBj aGFyIGMpIHsgfQogI2VuZGlmCiAjZW5kaWYgIC8qIF9WUEwwMTFfSF8gKi8KIAotLSAKMS45LjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs