From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 4/5] x86/hvm: Misc non-functional cleanup to the HVM_PARAM infrastructure Date: Wed, 5 Sep 2018 19:12:03 +0100 Message-ID: <1536171124-27053-5-git-send-email-andrew.cooper3@citrix.com> References: <1536171124-27053-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1536171124-27053-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Paul Durrant , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIHBhcmFtZXRlciBtYXJzaGFsbGluZyBhbmQgeHNtIGNoZWNrcyBhcmUgY29tbW9uIHRvIGJv dGggdGhlIHNldCBhbmQgZ2V0CnBhdGhzLiAgTGlmdCBhbGwgb2YgdGhlIGNvbW1vbiBjb2RlIG91 dCBpbnRvIGRvX2h2bV9vcCgpIGFuZCBsZXQKaHZtb3Bfe2dldCxzZXR9X3BhcmFtKCkgb3BlcmF0 ZSBvbiBzdHJ1Y3QgeGVuX2h2bV9wYXJhbSBkaXJlY3RseS4KClRoaXMgaXMgc29tZXdoYXQgbm9p c3kgaW4gdGhlIGZ1bmN0aW9ucyBhcyBlYWNoIGEuIHJlZmVyZW5jZSBoYXMgdG8gY2hhbmdlIHRv CmEtPiBpbnN0ZWFkLgoKSW4gYWRkaXRpb24sIGRyb3AgYW4gZW1wdHkgZGVmYXVsdCBzdGF0ZW1l bnQsIGluc2VydCBuZXdsaW5lcyBhcyBhcHByb3ByaWF0ZQpiZXR3ZWVuIGNhc2VzLCBhbmQgdGhl cmUgaXMgbm8gbmVlZCB0byB1cGRhdGUgdGhlIElERU5UX1BUIG9uIHRoZSBmYXN0cGF0aCwKYmVj YXVzZSB0aGUgY29tbW9uIHBhdGggYWZ0ZXIgdGhlIHN3aXRjaCB3aWxsIG1ha2UgdGhlIHVwZGF0 ZS4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgYSBuZXQgc2hyaW5rIG9mIC0zMjggdG8gZG9f aHZtX29wKCkuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFdl aSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5w YXVAY2l0cml4LmNvbT4KQ0M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+ CkNDOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNDOiBKdWxp ZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZt LmMgfCAyMjMgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAxMTkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZt LmMKaW5kZXggNDA4ZTY5NS4uYzg5MTI2OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9o dm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC00MDY1LDExICs0MDY1LDcgQEAg c3RhdGljIGludCBodm1fYWxsb3dfc2V0X3BhcmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9odm1fcGFyYW0gKmEpCiB7 CiAgICAgdWludDY0X3QgdmFsdWUgPSBkLT5hcmNoLmh2bS5wYXJhbXNbYS0+aW5kZXhdOwotICAg IGludCByYzsKLQotICAgIHJjID0geHNtX2h2bV9wYXJhbShYU01fVEFSR0VULCBkLCBIVk1PUF9z ZXRfcGFyYW0pOwotICAgIGlmICggcmMgKQotICAgICAgICByZXR1cm4gcmM7CisgICAgaW50IHJj ID0gMDsKIAogICAgIHN3aXRjaCAoIGEtPmluZGV4ICkKICAgICB7CkBAIC00MTMzLDYyICs0MTI5 LDQ2IEBAIHN0YXRpYyBpbnQgaHZtX2FsbG93X3NldF9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLAog ICAgICAgICBpZiAoIHZhbHVlICE9IDAgJiYgYS0+dmFsdWUgIT0gdmFsdWUgKQogICAgICAgICAg ICAgcmMgPSAtRUVYSVNUOwogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBi cmVhazsKICAgICB9CiAKICAgICByZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgaHZtb3Bfc2V0 X3BhcmFtKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9wYXJhbV90KSBhcmcp CitzdGF0aWMgaW50IGh2bW9wX3NldF9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVu X2h2bV9wYXJhbSAqYSkKIHsKICAgICBzdHJ1Y3QgZG9tYWluICpjdXJyX2QgPSBjdXJyZW50LT5k b21haW47Ci0gICAgc3RydWN0IHhlbl9odm1fcGFyYW0gYTsKLSAgICBzdHJ1Y3QgZG9tYWluICpk OwogICAgIHN0cnVjdCB2Y3B1ICp2OwogICAgIGludCByYzsKIAotICAgIGlmICggY29weV9mcm9t X2d1ZXN0KCZhLCBhcmcsIDEpICkKLSAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICBkID0g cmN1X2xvY2tfZG9tYWluX2J5X2FueV9pZChhLmRvbWlkKTsKLSAgICBpZiAoIGQgPT0gTlVMTCAp Ci0gICAgICAgIHJldHVybiAtRVNSQ0g7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAh aXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSBodm1fYWxs b3dfc2V0X3BhcmFtKGQsICZhKTsKKyAgICByYyA9IGh2bV9hbGxvd19zZXRfcGFyYW0oZCwgYSk7 CiAgICAgaWYgKCByYyApCiAgICAgICAgIGdvdG8gb3V0OwogCi0gICAgc3dpdGNoICggYS5pbmRl eCApCisgICAgc3dpdGNoICggYS0+aW5kZXggKQogICAgIHsKICAgICBjYXNlIEhWTV9QQVJBTV9D QUxMQkFDS19JUlE6Ci0gICAgICAgIGh2bV9zZXRfY2FsbGJhY2tfdmlhKGQsIGEudmFsdWUpOwor ICAgICAgICBodm1fc2V0X2NhbGxiYWNrX3ZpYShkLCBhLT52YWx1ZSk7CiAgICAgICAgIGh2bV9s YXRjaF9zaGluZm9fc2l6ZShkKTsKICAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEhWTV9QQVJB TV9USU1FUl9NT0RFOgotICAgICAgICBpZiAoIGEudmFsdWUgPiBIVk1QVE1fb25lX21pc3NlZF90 aWNrX3BlbmRpbmcgKQorICAgICAgICBpZiAoIGEtPnZhbHVlID4gSFZNUFRNX29uZV9taXNzZWRf dGlja19wZW5kaW5nICkKICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgYnJlYWs7 CisKICAgICBjYXNlIEhWTV9QQVJBTV9WSVJJRElBTjoKLSAgICAgICAgaWYgKCAoYS52YWx1ZSAm IH5IVk1QVl9mZWF0dXJlX21hc2spIHx8Ci0gICAgICAgICAgICAgIShhLnZhbHVlICYgSFZNUFZf YmFzZV9mcmVxKSApCisgICAgICAgIGlmICggKGEtPnZhbHVlICYgfkhWTVBWX2ZlYXR1cmVfbWFz aykgfHwKKyAgICAgICAgICAgICAhKGEtPnZhbHVlICYgSFZNUFZfYmFzZV9mcmVxKSApCiAgICAg ICAgICAgICByYyA9IC1FSU5WQUw7CiAgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBIVk1fUEFS QU1fSURFTlRfUFQ6CiAgICAgICAgIC8qCiAgICAgICAgICAqIE9ubHkgYWN0dWFsbHkgcmVxdWly ZWQgZm9yIFZULXggbGFja2luZyB1bnJlc3RyaWN0ZWRfZ3Vlc3QKICAgICAgICAgICogY2FwYWJp bGl0aWVzLiAgU2hvcnQgY2lyY3VpdCB0aGUgcGF1c2UgaWYgcG9zc2libGUuCiAgICAgICAgICAq LwogICAgICAgICBpZiAoICFwYWdpbmdfbW9kZV9oYXAoZCkgfHwgIWNwdV9oYXNfdm14ICkKLSAg ICAgICAgewotICAgICAgICAgICAgZC0+YXJjaC5odm0ucGFyYW1zW2EuaW5kZXhdID0gYS52YWx1 ZTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CiAKICAgICAgICAgLyoKICAgICAgICAg ICogVXBkYXRlIEdVRVNUX0NSMyBpbiBlYWNoIFZNQ1MgdG8gcG9pbnQgYXQgaWRlbnRpdHkgbWFw LgpAQCAtNDIwMSwxMTcgKzQxODEsMTIzIEBAIHN0YXRpYyBpbnQgaHZtb3Bfc2V0X3BhcmFtKAog CiAgICAgICAgIHJjID0gMDsKICAgICAgICAgZG9tYWluX3BhdXNlKGQpOwotICAgICAgICBkLT5h cmNoLmh2bS5wYXJhbXNbYS5pbmRleF0gPSBhLnZhbHVlOworICAgICAgICBkLT5hcmNoLmh2bS5w YXJhbXNbYS0+aW5kZXhdID0gYS0+dmFsdWU7CiAgICAgICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2 ICkKICAgICAgICAgICAgIHBhZ2luZ191cGRhdGVfY3IzKHYsIGZhbHNlKTsKICAgICAgICAgZG9t YWluX3VucGF1c2UoZCk7CiAKICAgICAgICAgZG9tY3RsX2xvY2tfcmVsZWFzZSgpOwogICAgICAg ICBicmVhazsKKwogICAgIGNhc2UgSFZNX1BBUkFNX0RNX0RPTUFJTjoKICAgICAgICAgLyogVGhl IG9ubHkgdmFsdWUgdGhpcyBzaG91bGQgZXZlciBiZSBzZXQgdG8gaXMgRE9NSURfU0VMRiAqLwot ICAgICAgICBpZiAoIGEudmFsdWUgIT0gRE9NSURfU0VMRiApCisgICAgICAgIGlmICggYS0+dmFs dWUgIT0gRE9NSURfU0VMRiApCiAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CiAKLSAgICAgICAg YS52YWx1ZSA9IGN1cnJfZC0+ZG9tYWluX2lkOworICAgICAgICBhLT52YWx1ZSA9IGN1cnJfZC0+ ZG9tYWluX2lkOwogICAgICAgICBicmVhazsKKwogICAgIGNhc2UgSFZNX1BBUkFNX0FDUElfU19T VEFURToKICAgICAgICAgcmMgPSAwOwotICAgICAgICBpZiAoIGEudmFsdWUgPT0gMyApCisgICAg ICAgIGlmICggYS0+dmFsdWUgPT0gMyApCiAgICAgICAgICAgICBodm1fczNfc3VzcGVuZChkKTsK LSAgICAgICAgZWxzZSBpZiAoIGEudmFsdWUgPT0gMCApCisgICAgICAgIGVsc2UgaWYgKCBhLT52 YWx1ZSA9PSAwICkKICAgICAgICAgICAgIGh2bV9zM19yZXN1bWUoZCk7CiAgICAgICAgIGVsc2UK ICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKLQogICAgICAgICBicmVhazsKKwogICAgIGNhc2Ug SFZNX1BBUkFNX0FDUElfSU9QT1JUU19MT0NBVElPTjoKLSAgICAgICAgcmMgPSBwbXRpbWVyX2No YW5nZV9pb3BvcnQoZCwgYS52YWx1ZSk7CisgICAgICAgIHJjID0gcG10aW1lcl9jaGFuZ2VfaW9w b3J0KGQsIGEtPnZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEhWTV9QQVJBTV9O RVNURURIVk06CiAgICAgICAgIHJjID0geHNtX2h2bV9wYXJhbV9uZXN0ZWQoWFNNX1BSSVYsIGQp OwogICAgICAgICBpZiAoIHJjICkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAoIGEu dmFsdWUgPiAxICkKKyAgICAgICAgaWYgKCBhLT52YWx1ZSA+IDEgKQogICAgICAgICAgICAgcmMg PSAtRUlOVkFMOwogICAgICAgICAvKgogICAgICAgICAgKiBSZW1vdmUgdGhlIGNoZWNrIGJlbG93 IG9uY2Ugd2UgaGF2ZQogICAgICAgICAgKiBzaGFkb3ctb24tc2hhZG93LgogICAgICAgICAgKi8K LSAgICAgICAgaWYgKCAhcGFnaW5nX21vZGVfaGFwKGQpICYmIGEudmFsdWUgKQorICAgICAgICBp ZiAoICFwYWdpbmdfbW9kZV9oYXAoZCkgJiYgYS0+dmFsdWUgKQogICAgICAgICAgICAgcmMgPSAt RUlOVkFMOwotICAgICAgICBpZiAoIGEudmFsdWUgJiYKKyAgICAgICAgaWYgKCBhLT52YWx1ZSAm JgogICAgICAgICAgICAgIGQtPmFyY2guaHZtLnBhcmFtc1tIVk1fUEFSQU1fQUxUUDJNXSApCiAg ICAgICAgICAgICByYyA9IC1FSU5WQUw7CiAgICAgICAgIC8qIFNldCB1cCBOSFZNIHN0YXRlIGZv ciBhbnkgdmNwdXMgdGhhdCBhcmUgYWxyZWFkeSB1cC4gKi8KLSAgICAgICAgaWYgKCBhLnZhbHVl ICYmCisgICAgICAgIGlmICggYS0+dmFsdWUgJiYKICAgICAgICAgICAgICAhZC0+YXJjaC5odm0u cGFyYW1zW0hWTV9QQVJBTV9ORVNURURIVk1dICkKICAgICAgICAgICAgIGZvcl9lYWNoX3ZjcHUo ZCwgdikKICAgICAgICAgICAgICAgICBpZiAoIHJjID09IDAgKQogICAgICAgICAgICAgICAgICAg ICByYyA9IG5lc3RlZGh2bV92Y3B1X2luaXRpYWxpc2Uodik7Ci0gICAgICAgIGlmICggIWEudmFs dWUgfHwgcmMgKQorICAgICAgICBpZiAoICFhLT52YWx1ZSB8fCByYyApCiAgICAgICAgICAgICBm b3JfZWFjaF92Y3B1KGQsIHYpCiAgICAgICAgICAgICAgICAgbmVzdGVkaHZtX3ZjcHVfZGVzdHJv eSh2KTsKICAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEhWTV9QQVJBTV9BTFRQMk06CiAgICAg ICAgIHJjID0geHNtX2h2bV9wYXJhbV9hbHRwMm1odm0oWFNNX1BSSVYsIGQpOwogICAgICAgICBp ZiAoIHJjICkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAoIGEudmFsdWUgPiBYRU5f QUxUUDJNX2xpbWl0ZWQgKQorICAgICAgICBpZiAoIGEtPnZhbHVlID4gWEVOX0FMVFAyTV9saW1p dGVkICkKICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKLSAgICAgICAgaWYgKCBhLnZhbHVlICYm CisgICAgICAgIGlmICggYS0+dmFsdWUgJiYKICAgICAgICAgICAgICBkLT5hcmNoLmh2bS5wYXJh bXNbSFZNX1BBUkFNX05FU1RFREhWTV0gKQogICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAg ICAgICBicmVhazsKIAogICAgIGNhc2UgSFZNX1BBUkFNX1RSSVBMRV9GQVVMVF9SRUFTT046Ci0g ICAgICAgIGlmICggYS52YWx1ZSA+IFNIVVRET1dOX01BWCApCisgICAgICAgIGlmICggYS0+dmFs dWUgPiBTSFVURE9XTl9NQVggKQogICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAgICBi cmVhazsKKwogICAgIGNhc2UgSFZNX1BBUkFNX0lPUkVRX1NFUlZFUl9QRk46Ci0gICAgICAgIGQt PmFyY2guaHZtLmlvcmVxX2dmbi5iYXNlID0gYS52YWx1ZTsKKyAgICAgICAgZC0+YXJjaC5odm0u aW9yZXFfZ2ZuLmJhc2UgPSBhLT52YWx1ZTsKICAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEhW TV9QQVJBTV9OUl9JT1JFUV9TRVJWRVJfUEFHRVM6CiAgICAgewogICAgICAgICB1bnNpZ25lZCBp bnQgaTsKIAotICAgICAgICBpZiAoIGEudmFsdWUgPT0gMCB8fAotICAgICAgICAgICAgIGEudmFs dWUgPiBzaXplb2YoZC0+YXJjaC5odm0uaW9yZXFfZ2ZuLm1hc2spICogOCApCisgICAgICAgIGlm ICggYS0+dmFsdWUgPT0gMCB8fAorICAgICAgICAgICAgIGEtPnZhbHVlID4gc2l6ZW9mKGQtPmFy Y2guaHZtLmlvcmVxX2dmbi5tYXNrKSAqIDggKQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9 IC1FSU5WQUw7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBmb3IgKCBp ID0gMDsgaSA8IGEudmFsdWU7IGkrKyApCisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYS0+dmFs dWU7IGkrKyApCiAgICAgICAgICAgICBzZXRfYml0KGksICZkLT5hcmNoLmh2bS5pb3JlcV9nZm4u bWFzayk7CiAKICAgICAgICAgYnJlYWs7CiAgICAgfQorCiAgICAgY2FzZSBIVk1fUEFSQU1fWDg3 X0ZJUF9XSURUSDoKLSAgICAgICAgaWYgKCBhLnZhbHVlICE9IDAgJiYgYS52YWx1ZSAhPSA0ICYm IGEudmFsdWUgIT0gOCApCisgICAgICAgIGlmICggYS0+dmFsdWUgIT0gMCAmJiBhLT52YWx1ZSAh PSA0ICYmIGEtPnZhbHVlICE9IDggKQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9IC1FSU5W QUw7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBkLT5hcmNoLng4N19m aXBfd2lkdGggPSBhLnZhbHVlOworICAgICAgICBkLT5hcmNoLng4N19maXBfd2lkdGggPSBhLT52 YWx1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEhWTV9QQVJBTV9WTTg2X1RTUzoKICAg ICAgICAgLyogSGFyZHdhcmUgd291bGQgc2lsZW50bHkgdHJ1bmNhdGUgaGlnaCBiaXRzLiAqLwot ICAgICAgICBpZiAoIGEudmFsdWUgIT0gKHVpbnQzMl90KWEudmFsdWUgKQorICAgICAgICBpZiAo IGEtPnZhbHVlICE9ICh1aW50MzJfdClhLT52YWx1ZSApCiAgICAgICAgIHsKICAgICAgICAgICAg IGlmICggZCA9PSBjdXJyX2QgKQogICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAg ICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgfQogICAgICAgICAvKiBPbGQgaHZtbG9h ZGVyIGJpbmFyaWVzIGhhcmRjb2RlIHRoZSBzaXplIHRvIDEyOCBieXRlcy4gKi8KLSAgICAgICAg aWYgKCBhLnZhbHVlICkKLSAgICAgICAgICAgIGEudmFsdWUgfD0gKDEyOFVMTCA8PCAzMikgfCBW TTg2X1RTU19VUERBVEVEOwotICAgICAgICBhLmluZGV4ID0gSFZNX1BBUkFNX1ZNODZfVFNTX1NJ WkVEOworICAgICAgICBpZiAoIGEtPnZhbHVlICkKKyAgICAgICAgICAgIGEtPnZhbHVlIHw9ICgx MjhVTEwgPDwgMzIpIHwgVk04Nl9UU1NfVVBEQVRFRDsKKyAgICAgICAgYS0+aW5kZXggPSBIVk1f UEFSQU1fVk04Nl9UU1NfU0laRUQ7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVk1fUEFS QU1fVk04Nl9UU1NfU0laRUQ6Ci0gICAgICAgIGlmICggKGEudmFsdWUgPj4gMzIpIDwgc2l6ZW9m KHN0cnVjdCB0c3MzMikgKQorICAgICAgICBpZiAoIChhLT52YWx1ZSA+PiAzMikgPCBzaXplb2Yo c3RydWN0IHRzczMyKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggZCA9PSBjdXJyX2Qg KQogICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKQEAgLTQzMjIsNDEgKzQzMDgsMzQg QEAgc3RhdGljIGludCBodm1vcF9zZXRfcGFyYW0oCiAgICAgICAgICAqIDI1NiBiaXRzIGludGVy cnVwdCByZWRpcmVjdGlvbiBiaXRtYXAgKyA2NGsgYml0cyBJL08gYml0bWFwCiAgICAgICAgICAq IHBsdXMgb25lIHBhZGRpbmcgYnl0ZSkuCiAgICAgICAgICAqLwotICAgICAgICBpZiAoIChhLnZh bHVlID4+IDMyKSA+IHNpemVvZihzdHJ1Y3QgdHNzMzIpICsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMHgxMDAgLyA4KSArICgweDEwMDAwIC8gOCkgKyAxICkKLSAgICAgICAgICAg IGEudmFsdWUgPSAodWludDMyX3QpYS52YWx1ZSB8Ci0gICAgICAgICAgICAgICAgICAgICAgKChz aXplb2Yoc3RydWN0IHRzczMyKSArICgweDEwMCAvIDgpICsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MTAwMDAgLyA4KSArIDEpIDw8IDMyKTsKLSAg ICAgICAgYS52YWx1ZSB8PSBWTTg2X1RTU19VUERBVEVEOworICAgICAgICBpZiAoIChhLT52YWx1 ZSA+PiAzMikgPiBzaXplb2Yoc3RydWN0IHRzczMyKSArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgweDEwMCAvIDgpICsgKDB4MTAwMDAgLyA4KSArIDEgKQorICAgICAgICAgICAg YS0+dmFsdWUgPSAodWludDMyX3QpYS0+dmFsdWUgfAorICAgICAgICAgICAgICAgICAgICAgICAo KHNpemVvZihzdHJ1Y3QgdHNzMzIpICsgKDB4MTAwIC8gOCkgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MTAwMDAgLyA4KSArIDEpIDw8IDMyKTsK KyAgICAgICAgYS0+dmFsdWUgfD0gVk04Nl9UU1NfVVBEQVRFRDsKICAgICAgICAgYnJlYWs7CiAK ICAgICBjYXNlIEhWTV9QQVJBTV9NQ0FfQ0FQOgotICAgICAgICByYyA9IHZtY2VfZW5hYmxlX21j YV9jYXAoZCwgYS52YWx1ZSk7CisgICAgICAgIHJjID0gdm1jZV9lbmFibGVfbWNhX2NhcChkLCBh LT52YWx1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlmICggcmMgIT0gMCApCiAg ICAgICAgIGdvdG8gb3V0OwogCi0gICAgZC0+YXJjaC5odm0ucGFyYW1zW2EuaW5kZXhdID0gYS52 YWx1ZTsKKyAgICBkLT5hcmNoLmh2bS5wYXJhbXNbYS0+aW5kZXhdID0gYS0+dmFsdWU7CiAKICAg ICBIVk1fREJHX0xPRyhEQkdfTEVWRUxfSENBTEwsICJzZXQgcGFyYW0gJXUgPSAlIlBSSXg2NCwK LSAgICAgICAgICAgICAgICBhLmluZGV4LCBhLnZhbHVlKTsKKyAgICAgICAgICAgICAgICBhLT5p bmRleCwgYS0+dmFsdWUpOwogCiAgb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwogICAg IHJldHVybiByYzsKIH0KIAogc3RhdGljIGludCBodm1fYWxsb3dfZ2V0X3BhcmFtKHN0cnVjdCBk b21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhl bl9odm1fcGFyYW0gKmEpCiB7Ci0gICAgaW50IHJjOwotCi0gICAgcmMgPSB4c21faHZtX3BhcmFt KFhTTV9UQVJHRVQsIGQsIEhWTU9QX2dldF9wYXJhbSk7Ci0gICAgaWYgKCByYyApCi0gICAgICAg IHJldHVybiByYzsKLQogICAgIHN3aXRjaCAoIGEtPmluZGV4ICkKICAgICB7CiAgICAgICAgIC8q IFRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBjYW4gYmUgcmVhZCBieSB0aGUgZ3Vlc3QgYW5kIHRv b2xzdGFjay4gKi8KQEAgLTQzNzEsNyArNDM1MCw3IEBAIHN0YXRpYyBpbnQgaHZtX2FsbG93X2dl dF9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgIGNhc2UgSFZNX1BBUkFNX0NPTlNPTEVfRVZU Q0hOOgogICAgIGNhc2UgSFZNX1BBUkFNX0FMVFAyTToKICAgICBjYXNlIEhWTV9QQVJBTV9YODdf RklQX1dJRFRIOgotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAg LyoKICAgICAgICAgICogVGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGFyZSBpbnRlbmRlZCBmb3Ig dG9vbHN0YWNrIHVzYWdlIG9ubHkuCkBAIC00Mzk3LDU5ICs0Mzc2LDQxIEBAIHN0YXRpYyBpbnQg aHZtX2FsbG93X2dldF9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgIGNhc2UgSFZNX1BBUkFN X0lPUkVRX1NFUlZFUl9QRk46CiAgICAgY2FzZSBIVk1fUEFSQU1fTlJfSU9SRVFfU0VSVkVSX1BB R0VTOgogICAgIGNhc2UgSFZNX1BBUkFNX01DQV9DQVA6Ci0gICAgICAgIGlmICggZCA9PSBjdXJy ZW50LT5kb21haW4gKQotICAgICAgICAgICAgcmMgPSAtRVBFUk07Ci0gICAgICAgIGJyZWFrOwor ICAgICAgICByZXR1cm4gZCA9PSBjdXJyZW50LT5kb21haW4gPyAtRVBFUk0gOiAwOwogCiAgICAg ICAgIC8qIEhvbGUsIGRlcHJlY2F0ZWQsIG9yIG91dC1vZi1yYW5nZS4gKi8KICAgICBkZWZhdWx0 OgotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4g LUVJTlZBTDsKICAgICB9Ci0KLSAgICByZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgaHZtb3Bf Z2V0X3BhcmFtKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9wYXJhbV90KSBh cmcpCitzdGF0aWMgaW50IGh2bW9wX2dldF9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qg eGVuX2h2bV9wYXJhbSAqYSkKIHsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9wYXJhbSBhOwotICAgIHN0 cnVjdCBkb21haW4gKmQ7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3Qo JmEsIGFyZywgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGQgPSByY3VfbG9j a19kb21haW5fYnlfYW55X2lkKGEuZG9taWQpOwotICAgIGlmICggZCA9PSBOVUxMICkKLSAgICAg ICAgcmV0dXJuIC1FU1JDSDsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFpc19odm1f ZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IGh2bV9hbGxvd19nZXRf cGFyYW0oZCwgJmEpOworICAgIHJjID0gaHZtX2FsbG93X2dldF9wYXJhbShkLCBhKTsKICAgICBp ZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7CisgICAgICAgIHJldHVybiByYzsKIAotICAgIHN3 aXRjaCAoIGEuaW5kZXggKQorICAgIHN3aXRjaCAoIGEtPmluZGV4ICkKICAgICB7CiAgICAgY2Fz ZSBIVk1fUEFSQU1fQUNQSV9TX1NUQVRFOgotICAgICAgICBhLnZhbHVlID0gZC0+YXJjaC5odm0u aXNfczNfc3VzcGVuZGVkID8gMyA6IDA7CisgICAgICAgIGEtPnZhbHVlID0gZC0+YXJjaC5odm0u aXNfczNfc3VzcGVuZGVkID8gMyA6IDA7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVk1f UEFSQU1fVk04Nl9UU1M6Ci0gICAgICAgIGEudmFsdWUgPSAodWludDMyX3QpZC0+YXJjaC5odm0u cGFyYW1zW0hWTV9QQVJBTV9WTTg2X1RTU19TSVpFRF07CisgICAgICAgIGEtPnZhbHVlID0gKHVp bnQzMl90KWQtPmFyY2guaHZtLnBhcmFtc1tIVk1fUEFSQU1fVk04Nl9UU1NfU0laRURdOwogICAg ICAgICBicmVhazsKIAogICAgIGNhc2UgSFZNX1BBUkFNX1ZNODZfVFNTX1NJWkVEOgotICAgICAg ICBhLnZhbHVlID0gZC0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9WTTg2X1RTU19TSVpFRF0g JgotICAgICAgICAgICAgICAgICAgflZNODZfVFNTX1VQREFURUQ7CisgICAgICAgIGEtPnZhbHVl ID0gZC0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9WTTg2X1RTU19TSVpFRF0gJgorICAgICAg ICAgICAgICAgICAgIH5WTTg2X1RTU19VUERBVEVEOwogICAgICAgICBicmVhazsKIAogICAgIGNh c2UgSFZNX1BBUkFNX1g4N19GSVBfV0lEVEg6Ci0gICAgICAgIGEudmFsdWUgPSBkLT5hcmNoLng4 N19maXBfd2lkdGg7CisgICAgICAgIGEtPnZhbHVlID0gZC0+YXJjaC54ODdfZmlwX3dpZHRoOwog ICAgICAgICBicmVhazsKKwogICAgIGNhc2UgSFZNX1BBUkFNX0lPUkVRX1BGTjoKICAgICBjYXNl IEhWTV9QQVJBTV9CVUZJT1JFUV9QRk46CiAgICAgY2FzZSBIVk1fUEFSQU1fQlVGSU9SRVFfRVZU Q0hOOgpAQCAtNDQ2NSwyMyArNDQyNiwxOSBAQCBzdGF0aWMgaW50IGh2bW9wX2dldF9wYXJhbSgK ICAgICAgICAgICAgIHJjID0gaHZtX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoZCwgdHJ1ZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZNX0lPUkVRU1JWX0JVRklPUkVR X0xFR0FDWSwgTlVMTCk7CiAgICAgICAgICAgICBpZiAoIHJjICE9IDAgJiYgcmMgIT0gLUVFWElT VCApCi0gICAgICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJj OwogICAgICAgICB9CiAKLSAgICAvKkZBTExUSFJVKi8KKyAgICAgICAgLyogRmFsbHRocm91Z2gg Ki8KICAgICBkZWZhdWx0OgotICAgICAgICBhLnZhbHVlID0gZC0+YXJjaC5odm0ucGFyYW1zW2Eu aW5kZXhdOworICAgICAgICBhLT52YWx1ZSA9IGQtPmFyY2guaHZtLnBhcmFtc1thLT5pbmRleF07 CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHJjID0gX19jb3B5X3RvX2d1ZXN0KGFyZywg JmEsIDEpID8gLUVGQVVMVCA6IDA7Ci0KICAgICBIVk1fREJHX0xPRyhEQkdfTEVWRUxfSENBTEws ICJnZXQgcGFyYW0gJXUgPSAlIlBSSXg2NCwKLSAgICAgICAgICAgICAgICBhLmluZGV4LCBhLnZh bHVlKTsKKyAgICAgICAgICAgICAgICBhLT5pbmRleCwgYS0+dmFsdWUpOwogCi0gb3V0OgotICAg IHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gMDsKIH0K IAogLyoKQEAgLTQ4OTYsMTQgKzQ4NTMsNDIgQEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9u ZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgIGJyZWFrOwog ICAgIAogICAgIGNhc2UgSFZNT1Bfc2V0X3BhcmFtOgotICAgICAgICByYyA9IGh2bW9wX3NldF9w YXJhbSgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9wYXJhbV90 KSk7Ci0gICAgICAgIGJyZWFrOwotCiAgICAgY2FzZSBIVk1PUF9nZXRfcGFyYW06Ci0gICAgICAg IHJjID0gaHZtb3BfZ2V0X3BhcmFtKAotICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJn LCB4ZW5faHZtX3BhcmFtX3QpKTsKKyAgICB7CisgICAgICAgIHN0cnVjdCB4ZW5faHZtX3BhcmFt IGE7CisgICAgICAgIHN0cnVjdCBkb21haW4gKmQ7CisKKyAgICAgICAgcmMgPSAtRUZBVUxUOwor ICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmYSwgYXJnLCAxKSApCisgICAgICAgICAgICBi cmVhazsKKworICAgICAgICByYyA9IC1FU1JDSDsKKyAgICAgICAgZCA9IHJjdV9sb2NrX2RvbWFp bl9ieV9hbnlfaWQoYS5kb21pZCk7CisgICAgICAgIGlmICggZCA9PSBOVUxMICkKKyAgICAgICAg ICAgIGJyZWFrOworCisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCAhaXNfaHZt X2RvbWFpbihkKSApCisgICAgICAgICAgICBnb3RvIHBhcmFtX291dDsKKworICAgICAgICByYyA9 IHhzbV9odm1fcGFyYW0oWFNNX1RBUkdFVCwgZCwgb3ApOworICAgICAgICBpZiAoIHJjICkKKyAg ICAgICAgICAgIGdvdG8gcGFyYW1fb3V0OworCisgICAgICAgIGlmICggb3AgPT0gSFZNT1Bfc2V0 X3BhcmFtICkKKyAgICAgICAgICAgIHJjID0gaHZtb3Bfc2V0X3BhcmFtKGQsICZhKTsKKyAgICAg ICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICByYyA9IGh2bW9wX2dldF9wYXJhbShkLCAm YSk7CisKKyAgICAgICAgICAgIGlmICggIXJjICYmIF9fY29weV90b19ndWVzdChhcmcsICZhLCAx KSApCisgICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICB9CisKKyAgICBwYXJh bV9vdXQ6CisgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwogICAgICAgICBicmVhazsKKyAg ICB9CiAKICAgICBjYXNlIEhWTU9QX2ZsdXNoX3RsYnM6CiAgICAgICAgIHJjID0gZ3Vlc3RfaGFu ZGxlX2lzX251bGwoYXJnKSA/IGh2bW9wX2ZsdXNoX3RsYl9hbGwoKSA6IC1FSU5WQUw7Ci0tIAoy LjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=