From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v3 10/17] x86: allocate per-vcpu stacks for interrupt entries Date: Fri, 9 Feb 2018 15:01:44 +0100 Message-ID: <20180209140151.24714-11-jgross@suse.com> References: <20180209140151.24714-1-jgross@suse.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.84_2) (envelope-from ) id 1ek9Fd-0003Co-Qq for xen-devel@lists.xenproject.org; Fri, 09 Feb 2018 14:02:05 +0000 In-Reply-To: <20180209140151.24714-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , andrew.cooper3@citrix.com, dfaggioli@suse.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SW4gY2FzZSBvZiBYUFRJIGJlaW5nIGFjdGl2ZSBmb3IgYSBwdi1kb21haW4gYWxsb2NhdGUgYW5k IGluaXRpYWxpemUKcGVyLXZjcHUgc3RhY2tzLiBUaGUgc3RhY2tzIGFyZSBhZGRlZCB0byB0aGUg cGVyLWRvbWFpbiBtYXBwaW5ncyBvZgp0aGUgcHYtZG9tYWluLgoKU2lnbmVkLW9mZi1ieTogSnVl cmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KVjM6Ci0gbW92ZSB4cHRpIGNvZGUgdG8g eHB0aS5jCi0gZGlyZWN0bHkgbW9kaWZ5IHBhZ2UgdGFibGUgZW50cmllcyBhcyBuZWVkZWQgZm9y IHN0dWIgYW5kIHN0YWNrCiAgcGFnZSAoSmFuIEJldWxpY2gpCi0gdXNlIG9uZSBwYWdlIGZvciBh bGwgc3RhY2tzIGFuZCBUU1MKLSByZW1hcCBnbG9iYWwgc3R1YiBpbnN0ZWFkIGFsbG9jYXRpbmcg b25lIGZvciBlYWNoIHZjcHUKLS0tCiB4ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgICAgICB8ICAg MiArCiB4ZW4vYXJjaC94ODYvcHYveHB0aS5jICAgICAgICB8IDExNyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgg IHwgIDEzICsrKystCiB4ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaCB8ICA0OSArKysrKysr KysrKysrLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggIHwgICAzICsrCiB4ZW4v aW5jbHVkZS9hc20teDg2L3B2L21tLmggICB8ICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDE2NiBp bnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv cHYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKaW5kZXggYTAwN2FmOTRkZC4u NTUwZmJiZjBmZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCisrKyBiL3hl bi9hcmNoL3g4Ni9wdi9kb21haW4uYwpAQCAtMTIwLDYgKzEyMCw4IEBAIHZvaWQgcHZfdmNwdV9k ZXN0cm95KHN0cnVjdCB2Y3B1ICp2KQogICAgIHB2X2Rlc3Ryb3lfZ2R0X2xkdF9sMXRhYih2KTsK ICAgICB4ZnJlZSh2LT5hcmNoLnB2X3ZjcHUudHJhcF9jdHh0KTsKICAgICB2LT5hcmNoLnB2X3Zj cHUudHJhcF9jdHh0ID0gTlVMTDsKKworICAgIHhwdGlfdmNwdV9kZXN0cm95KHYpOwogfQogCiBp bnQgcHZfdmNwdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2KQpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3B2L3hwdGkuYyBiL3hlbi9hcmNoL3g4Ni9wdi94cHRpLmMKaW5kZXggMGIxN2Q3N2Q3 NC4uMTM1NjU0MTgwNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L3hwdGkuYworKysgYi94 ZW4vYXJjaC94ODYvcHYveHB0aS5jCkBAIC0xOSwxMyArMTksMjggQEAKICAqIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CiAgKi8KIAorI2luY2x1ZGUgPHhlbi9kb21haW5fcGFnZS5oPgogI2luY2x1ZGUgPHhlbi9lcnJu by5oPgogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1 ZGUgPHhlbi9zY2hlZC5oPgogCisjZGVmaW5lIFhQVElfU1RBQ0tfU0laRSA1MTIKKyNkZWZpbmUg WFBUSV9TVEFDS19OIChYUFRJX1NUQUNLX1NJWkUgLyA4KQorCitzdHJ1Y3QgeHB0aV9zdGFjayB7 CisgICAgc3RydWN0IHRzc19zdHJ1Y3QgdHNzOworICAgIGNoYXIgcGFkW1BBR0VfU0laRSAtIHNp emVvZihzdHJ1Y3QgY3B1X2luZm8pIC0gc2l6ZW9mKHN0cnVjdCB0c3Nfc3RydWN0KSAtCisgICAg ICAgICAgICAgWFBUSV9TVEFDS19TSVpFICogNF07CisgICAgdWludDY0X3QgZGZfc3RhY2tbWFBU SV9TVEFDS19OXTsKKyAgICB1aW50NjRfdCBubWlfc3RhY2tbWFBUSV9TVEFDS19OXTsKKyAgICB1 aW50NjRfdCBtY2Vfc3RhY2tbWFBUSV9TVEFDS19OXTsKKyAgICB1aW50NjRfdCBwcmltYXJ5X3N0 YWNrW1hQVElfU1RBQ0tfTl07CisgICAgc3RydWN0IGNwdV9pbmZvIGNwdV9pbmZvOworfTsKKwog c3RydWN0IHhwdGlfZG9tYWluIHsKLSAgICBpbnQgcGFkOworICAgIGwxX3BnZW50cnlfdCAqKnBl cmRvbV9sMXRhYjsKIH07CiAKIHN0YXRpYyBfX3JlYWRfbW9zdGx5IGVudW0gewpAQCAtNjQsMTQg Kzc5LDkyIEBAIGN1c3RvbV9ydW50aW1lX3BhcmFtKCJ4cHRpIiwgcGFyc2VfeHB0aSk7CiAKIHZv aWQgeHB0aV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQogewotICAgIHhmcmVlKGQt PmFyY2gucHZfZG9tYWluLnhwdGkpOworICAgIHN0cnVjdCB4cHRpX2RvbWFpbiAqeGQgPSBkLT5h cmNoLnB2X2RvbWFpbi54cHRpOworCisgICAgaWYgKCAheGQgKQorICAgICAgICByZXR1cm47CisK KyAgICB4ZnJlZSh4ZC0+cGVyZG9tX2wxdGFiKTsKKyAgICB4ZnJlZSh4ZCk7CiAgICAgZC0+YXJj aC5wdl9kb21haW4ueHB0aSA9IE5VTEw7CiB9CiAKK3ZvaWQgeHB0aV92Y3B1X2Rlc3Ryb3koc3Ry dWN0IHZjcHUgKnYpCit7CisgICAgaWYgKCB2LT5kb21haW4tPmFyY2gucHZfZG9tYWluLnhwdGkg KQorICAgIHsKKyAgICAgICAgZnJlZV94ZW5oZWFwX3BhZ2Uodi0+YXJjaC5wdl92Y3B1LnN0YWNr X3JlZ3MpOworICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuc3RhY2tfcmVncyA9IE5VTEw7CisgICAg ICAgIGRlc3Ryb3lfcGVyZG9tYWluX21hcHBpbmcodi0+ZG9tYWluLCBYUFRJX1NUQVJUKHYpLCBT VEFDS19QQUdFUyk7CisgICAgfQorfQorCitzdGF0aWMgaW50IHhwdGlfdmNwdV9pbml0KHN0cnVj dCB2Y3B1ICp2KQoreworICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47CisgICAgc3Ry dWN0IHhwdGlfZG9tYWluICp4ZCA9IGQtPmFyY2gucHZfZG9tYWluLnhwdGk7CisgICAgdm9pZCAq cHRyOworICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbzsKKyAgICBzdHJ1Y3QgeHB0aV9zdGFjayAq c3RhY2s7CisgICAgc3RydWN0IHRzc19zdHJ1Y3QgKnRzczsKKyAgICBsMV9wZ2VudHJ5X3QgKnBs MWU7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IHJjOworCisgICAgLyogUG9wdWxhdGUg cGFnZSB0YWJsZXMuICovCisgICAgcmMgPSBjcmVhdGVfcGVyZG9tYWluX21hcHBpbmcoZCwgWFBU SV9TVEFSVCh2KSwgU1RBQ0tfUEFHRVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeGQtPnBlcmRvbV9sMXRhYiwgTlVMTCk7CisgICAgaWYgKCByYyApCisgICAgICAgIGdvdG8g ZG9uZTsKKyAgICBwbDFlID0geGQtPnBlcmRvbV9sMXRhYltsMl90YWJsZV9vZmZzZXQoWFBUSV9T VEFSVCh2KSldICsKKyAgICAgICAgICAgbDFfdGFibGVfb2Zmc2V0KFhQVElfU1RBUlQodikpOwor CisgICAgLyogTWFwIHN0YWNrcyBhbmQgVFNTLiAqLworICAgIHJjID0gY3JlYXRlX3BlcmRvbWFp bl9tYXBwaW5nKGQsIFhQVElfVFNTKHYpLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsIE5JTChzdHJ1Y3QgcGFnZV9pbmZvICopKTsKKyAgICBpZiAoIHJjICkKKyAg ICAgICAgZ290byBkb25lOworCisgICAgcHRyID0gYWxsb2NfeGVuaGVhcF9wYWdlKCk7CisgICAg aWYgKCAhcHRyICkKKyAgICB7CisgICAgICAgIHJjID0gLUVOT01FTTsKKyAgICAgICAgZ290byBk b25lOworICAgIH0KKyAgICBjbGVhcl9wYWdlKHB0cik7CisgICAgbDFlX3dyaXRlKHBsMWUgKyBT VEFDS19QQUdFUyAtIDEsCisgICAgICAgICAgICAgIGwxZV9mcm9tX3Bmbih2aXJ0X3RvX21mbihw dHIpLCBfX1BBR0VfSFlQRVJWSVNPUl9SVykpOworICAgIGluZm8gPSAoc3RydWN0IGNwdV9pbmZv ICopKCh1bnNpZ25lZCBsb25nKXB0ciArIFBBR0VfU0laRSkgLSAxOworICAgIGluZm8tPmZsYWdz ID0gT05fVkNQVVNUQUNLOworICAgIHYtPmFyY2gucHZfdmNwdS5zdGFja19yZWdzID0gJmluZm8t Pmd1ZXN0X2NwdV91c2VyX3JlZ3M7CisKKyAgICAvKiBzdGFjayBqdXN0IHVzZWQgZm9yIGdlbmVy YXRpbmcgdGhlIGNvcnJlY3QgYWRkcmVzc2VzLiAqLworICAgIHN0YWNrID0gKHN0cnVjdCB4cHRp X3N0YWNrICopWFBUSV9UU1Modik7CisgICAgdHNzID0gcHRyOworICAgIHRzcy0+cnNwMCA9ICh1 bnNpZ25lZCBsb25nKSZzdGFjay0+Y3B1X2luZm8uZ3Vlc3RfY3B1X3VzZXJfcmVncy5lczsKKyAg ICB0c3MtPnJzcDEgPSAweDg2MDAxMTExMTExMTExMTF1bDsgLyogcG9pc29uICovCisgICAgdHNz LT5yc3AyID0gMHg4NjAwMTExMTExMTExMTExdWw7IC8qIHBvaXNvbiAqLworICAgIHRzcy0+aXN0 W0lTVF9NQ0UgLSAxXSA9ICh1bnNpZ25lZCBsb25nKSZzdGFjay0+bWNlX3N0YWNrW1hQVElfU1RB Q0tfTl07CisgICAgdHNzLT5pc3RbSVNUX0RGICAtIDFdID0gKHVuc2lnbmVkIGxvbmcpJnN0YWNr LT5kZl9zdGFja1tYUFRJX1NUQUNLX05dOworICAgIHRzcy0+aXN0W0lTVF9OTUkgLSAxXSA9ICh1 bnNpZ25lZCBsb25nKSZzdGFjay0+bm1pX3N0YWNrW1hQVElfU1RBQ0tfTl07CisgICAgZm9yICgg aSA9IElTVF9NQVg7IGkgPCBBUlJBWV9TSVpFKHRzcy0+aXN0KTsgaSsrICkKKyAgICAgICAgdHNz LT5pc3RbaV0gPSAweDg2MDAxMTExMTExMTExMTF1bDsgLyogcG9pc29uICovCisgICAgdHNzLT5i aXRtYXAgPSBJT0JNUF9JTlZBTElEX09GRlNFVDsKKworICAgIC8qIE1hcCBzdHViIHRyYW1wb2xp bmVzLiAqLworICAgIGwxZV93cml0ZShwbDFlICsgU1RBQ0tfUEFHRVMgLSAyLAorICAgICAgICAg ICAgICBsMWVfZnJvbV9wZm4odmlydF90b19tZm4oeHB0aV9sc3RhciksIF9fUEFHRV9IWVBFUlZJ U09SX1JYKSk7CisKKyBkb25lOgorICAgIHJldHVybiByYzsKK30KKwogaW50IHhwdGlfZG9tYWlu X2luaXQoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBib29sIHhwdGkgPSBmYWxzZTsKLSAgICBp bnQgcmV0ID0gMDsKKyAgICBpbnQgcmV0ID0gLUVOT01FTTsKKyAgICBzdHJ1Y3QgdmNwdSAqdjsK KyAgICBzdHJ1Y3QgeHB0aV9kb21haW4gKnhkOwogCiAgICAgaWYgKCAhaXNfcHZfZG9tYWluKGQp IHx8IGlzX3B2XzMyYml0X2RvbWFpbihkKSApCiAgICAgICAgIHJldHVybiAwOwpAQCAtOTYsMTEg KzE4OSwyMSBAQCBpbnQgeHB0aV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIGlm ICggIXhwdGkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGQtPmFyY2gucHZfZG9tYWluLnhw dGkgPSB4bWFsbG9jKHN0cnVjdCB4cHRpX2RvbWFpbik7Ci0gICAgaWYgKCAhZC0+YXJjaC5wdl9k b21haW4ueHB0aSApCi0gICAgewotICAgICAgICByZXQgPSAtRU5PTUVNOworICAgIHhkID0geHph bGxvYyhzdHJ1Y3QgeHB0aV9kb21haW4pOworICAgIGlmICggIXhkICkKICAgICAgICAgZ290byBk b25lOworICAgIGQtPmFyY2gucHZfZG9tYWluLnhwdGkgPSB4ZDsKKworICAgIHhkLT5wZXJkb21f bDF0YWIgPSB4emFsbG9jX2FycmF5KGwxX3BnZW50cnlfdCAqLAorICAgICAgICAgICAgICAgICAg IGwyX3RhYmxlX29mZnNldCgoZC0+bWF4X3ZjcHVzIC0gMSkgPDwgWFBUSV9WQV9TSElGVCkgKyAx KTsKKyAgICBpZiAoICF4ZC0+cGVyZG9tX2wxdGFiICkKKyAgICAgICAgZ290byBkb25lOworCisg ICAgZm9yX2VhY2hfdmNwdSggZCwgdiApCisgICAgeworICAgICAgICByZXQgPSB4cHRpX3ZjcHVf aW5pdCh2KTsKKyAgICAgICAgaWYgKCByZXQgKQorICAgICAgICAgICAgZ290byBkb25lOwogICAg IH0KIAogICAgIHByaW50aygiRW5hYmxpbmcgWGVuIFBhZ2V0YWJsZSBwcm90ZWN0aW9uIChYUFRJ KSBmb3IgRG9tYWluICVkXG4iLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25m aWcuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgKaW5kZXggOWVmOWQwM2NhNy4uYjU2 M2EyZjg1YiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaAorKysgYi94 ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oCkBAIC02Niw2ICs2Niw3IEBACiAjZW5kaWYKIAog I2RlZmluZSBTVEFDS19PUkRFUiAzCisjZGVmaW5lIFNUQUNLX1BBR0VTICgxIDw8IFNUQUNLX09S REVSKQogI2RlZmluZSBTVEFDS19TSVpFICAoUEFHRV9TSVpFIDw8IFNUQUNLX09SREVSKQogCiAj ZGVmaW5lIFRSQU1QT0xJTkVfU1RBQ0tfU1BBQ0UgIFBBR0VfU0laRQpAQCAtMjAyLDcgKzIwMyw3 IEBAIGV4dGVybiB1bnNpZ25lZCBjaGFyIGJvb3RfZWRpZF9pbmZvWzEyOF07CiAvKiBTbG90IDI2 MDogcGVyLWRvbWFpbiBtYXBwaW5ncyAoaW5jbHVkaW5nIG1hcCBjYWNoZSkuICovCiAjZGVmaW5l IFBFUkRPTUFJTl9WSVJUX1NUQVJUICAgIChQTUw0X0FERFIoMjYwKSkKICNkZWZpbmUgUEVSRE9N QUlOX1NMT1RfTUJZVEVTICAgKFBNTDRfRU5UUllfQllURVMgPj4gKDIwICsgUEFHRVRBQkxFX09S REVSKSkKLSNkZWZpbmUgUEVSRE9NQUlOX1NMT1RTICAgICAgICAgMworI2RlZmluZSBQRVJET01B SU5fU0xPVFMgICAgICAgICA0CiAjZGVmaW5lIFBFUkRPTUFJTl9WSVJUX1NMT1QocykgIChQRVJE T01BSU5fVklSVF9TVEFSVCArIChzKSAqIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChQRVJET01BSU5fU0xPVF9NQllURVMgPDwgMjApKQogLyogU2xvdCAyNjE6IG1hY2hpbmUt dG8tcGh5cyBjb252ZXJzaW9uIHRhYmxlICgyNTZHQikuICovCkBAIC0zMTAsNiArMzExLDE2IEBA IGV4dGVybiB1bnNpZ25lZCBsb25nIHhlbl9waHlzX3N0YXJ0OwogI2RlZmluZSBBUkdfWExBVF9T VEFSVCh2KSAgICAgICAgXAogICAgIChBUkdfWExBVF9WSVJUX1NUQVJUICsgKCh2KS0+dmNwdV9p ZCA8PCBBUkdfWExBVF9WQV9TSElGVCkpCiAKKy8qIFBlci12Y3B1IFhQVEkgcGFnZXMuIFRoZSBm b3VydGggcGVyLWRvbWFpbi1tYXBwaW5nIHN1Yi1hcmVhLiAqLworI2RlZmluZSBYUFRJX1ZJUlRf U1RBUlQgICAgICAgICAgUEVSRE9NQUlOX1ZJUlRfU0xPVCgzKQorI2RlZmluZSBYUFRJX1ZBX1NI SUZUICAgICAgICAgICAgKFBBR0VfU0hJRlQgKyBTVEFDS19PUkRFUikKKyNkZWZpbmUgWFBUSV9U UkFNUE9MSU5FX09GRiAgICAgICgoU1RBQ0tfUEFHRVMgLSAyKSA8PCBQQUdFX1NISUZUKQorI2Rl ZmluZSBYUFRJX1RTU19PRkYgICAgICAgICAgICAgKChTVEFDS19QQUdFUyAtIDEpIDw8IFBBR0Vf U0hJRlQpCisjZGVmaW5lIFhQVElfU1RBUlQodikgICAgICAgICAgICAoWFBUSV9WSVJUX1NUQVJU ICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodiktPnZjcHVfaWQgPDwg WFBUSV9WQV9TSElGVCkpCisjZGVmaW5lIFhQVElfVFJBTVBPTElORSh2KSAgICAgICAoWFBUSV9T VEFSVCh2KSArIFhQVElfVFJBTVBPTElORV9PRkYpCisjZGVmaW5lIFhQVElfVFNTKHYpICAgICAg ICAgICAgICAoWFBUSV9TVEFSVCh2KSArIFhQVElfVFNTX09GRikKKwogI2RlZmluZSBOQVRJVkVf Vk1fQVNTSVNUX1ZBTElEICAgKCgxVUwgPDwgVk1BU1NUX1RZUEVfNGdiX3NlZ21lbnRzKSAgICAg ICAgfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVTCA8PCBWTUFTU1Rf VFlQRV80Z2Jfc2VnbWVudHNfbm90aWZ5KSB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoMVVMIDw8IFZNQVNTVF9UWVBFX3dyaXRhYmxlX3BhZ2V0YWJsZXMpIHwgXApkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmggYi94ZW4vaW5jbHVkZS9hc20t eDg2L2N1cnJlbnQuaAppbmRleCA4M2QyMjZhMWJhLi41OTYzMTE0ZTA4IDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2N1 cnJlbnQuaApAQCAtMTIsNyArMTIsNyBAQAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAKIC8qCi0g KiBYZW4ncyBjcHUgc3RhY2tzIGFyZSA4IHBhZ2VzICg4LXBhZ2UgYWxpZ25lZCksIGFycmFuZ2Vk IGFzOgorICogWGVuJ3MgcGh5c2ljYWwgY3B1IHN0YWNrcyBhcmUgOCBwYWdlcyAoOC1wYWdlIGFs aWduZWQpLCBhcnJhbmdlZCBhczoKICAqCiAgKiA3IC0gUHJpbWFyeSBzdGFjayAod2l0aCBhIHN0 cnVjdCBjcHVfaW5mbyBhdCB0aGUgdG9wKQogICogNiAtIFByaW1hcnkgc3RhY2sKQEAgLTI1LDYg KzI1LDE5IEBACiAgKi8KIAogLyoKKyAqIFRoZSB2Y3B1IHN0YWNrcyB1c2VkIGZvciBYUFRJIGFy ZSA4LXBhZ2UgYWxpZ25lZCBpbiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UKKyAqIGxpa2UgdGhlIHBo eXNpY2FsIGNwdSBzdGFja3MsIGJ1dCBtb3N0IG9mIHRoYXQgYXJlYSBpcyB1bnBvcHVsYXRlZC4K KyAqIEFzIGVhY2ggc3RhY2sgbmVlZHMgb25seSBzcGFjZSBmb3IgdGhlIGludGVycnVwdGVkIGNv bnRleHQgYW5kIChpbiBjYXNlCisgKiBvZiB0aGUgcHJpbWFyeSBzdGFjaykgbWF5YmUgYSBjcHVf aW5mbyBzdHJ1Y3R1cmUsIGFsbCBzdGFja3MgY2FuIGJlIHB1dAorICogaW50byBhIHNpbmdsZSBw YWdlLiBUaGUgU3lzY2FsbCB0cmFtcG9saW5lcyBhcmUgbWFwcGVkIGRpcmVjdGx5IGJlbG93IHRo ZQorICogc3RhY2sgcGFnZS4KKyAqCisgKiA3IC0gUHJpbWFyeSBzdGFjayAod2l0aCBhIHN0cnVj dCBjcHVfaW5mbyBhdCB0aGUgdG9wKSwgSVNUIHN0YWNrcyBhbmQgVFNTCisgKiA2IC0gU3lzY2Fs bCB0cmFtcG9saW5lcworICogMCAtIDUgdW51c2VkCisgKi8KKworLyoKICAqIElkZW50aWZ5IHdo aWNoIHN0YWNrIHBhZ2UgdGhlIHN0YWNrIHBvaW50ZXIgaXMgb24uICBSZXR1cm5zIGFuIGluZGV4 CiAgKiBhcyBwZXIgdGhlIGNvbW1lbnQgYWJvdmUuCiAgKi8KQEAgLTM3LDE3ICs1MCwyOSBAQCBz dHJ1Y3QgdmNwdTsKIAogc3RydWN0IGNwdV9pbmZvIHsKICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyBndWVzdF9jcHVfdXNlcl9yZWdzOwotICAgIHVuc2lnbmVkIGludCBwcm9jZXNzb3JfaWQ7Ci0g ICAgc3RydWN0IHZjcHUgKmN1cnJlbnRfdmNwdTsKLSAgICB1bnNpZ25lZCBsb25nIHBlcl9jcHVf b2Zmc2V0OwotICAgIHVuc2lnbmVkIGxvbmcgY3I0OwotCi0gICAgLyogU2VlIGFzbS14ODYvc3Bl Y19jdHJsX2FzbS5oIGZvciB1c2FnZS4gKi8KLSAgICB1bnNpZ25lZCBpbnQgc2hhZG93X3NwZWNf Y3RybDsKLSAgICBib29sICAgICAgICAgdXNlX3NoYWRvd19zcGVjX2N0cmw7Ci0gICAgdWludDhf dCAgICAgIGJ0aV9pc3RfaW5mbzsKLQotICAgIHVuc2lnbmVkIGxvbmcgX19wYWQ7CisgICAgdW5p b24geworICAgICAgICAvKiBwZXIgcGh5c2ljYWwgY3B1IG1hcHBpbmcgKi8KKyAgICAgICAgc3Ry dWN0IHsKKyAgICAgICAgICAgIHN0cnVjdCB2Y3B1ICpjdXJyZW50X3ZjcHU7CisgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHBlcl9jcHVfb2Zmc2V0OworICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBjcjQ7CisKKyAgICAgICAgICAgIC8qIFNlZSBhc20teDg2L3NwZWNfY3RybF9hc20uaCBmb3Ig dXNhZ2UuICovCisgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc2hhZG93X3NwZWNfY3RybDsKKyAg ICAgICAgICAgIGJvb2wgICAgICAgICB1c2Vfc2hhZG93X3NwZWNfY3RybDsKKyAgICAgICAgICAg IHVpbnQ4X3QgICAgICBidGlfaXN0X2luZm87CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBf cGFkOworICAgICAgICB9OworICAgICAgICAvKiBwZXIgdmNwdSBtYXBwaW5nICh4cHRpKSAqLwor ICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2X3BhZFs0XTsKKyAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhY2tfYm90dG9tX2NwdTsKKyAgICAgICAgfTsKKyAg ICB9OworICAgIHVuc2lnbmVkIGludCBwcm9jZXNzb3JfaWQ7ICAvKiBwZXIgcGh5c2ljYWwgY3B1 IG1hcHBpbmcgb25seSAqLworICAgIHVuc2lnbmVkIGludCBmbGFnczsKKyNkZWZpbmUgT05fVkNQ VVNUQUNLICAgICAgMHgwMDAwMDAwMQorI2RlZmluZSBWQ1BVU1RBQ0tfQUNUSVZFICAweDAwMDAw MDAyCiAgICAgLyogZ2V0X3N0YWNrX2JvdHRvbSgpIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkICov CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9kb21haW4uaAppbmRleCBiMzNjMjg2ODA3Li4xYTRlOTI0ODFjIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvZG9tYWluLmgKQEAgLTUwNSw2ICs1MDUsOSBAQCBzdHJ1Y3QgcHZfdmNwdQogICAgIC8q IERlZmVycmVkIFZBLWJhc2VkIHVwZGF0ZSBzdGF0ZS4gKi8KICAgICBib29sX3QgbmVlZF91cGRh dGVfcnVuc3RhdGVfYXJlYTsKICAgICBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gcGVuZGluZ19zeXN0 ZW1fdGltZTsKKworICAgIC8qIElmIFhQVEkgaXMgYWN0aXZlOiBwb2ludGVyIHRvIHVzZXIgcmVn cyBvbiBzdGFjay4gKi8KKyAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqc3RhY2tfcmVnczsKIH07 CiAKIHR5cGVkZWYgZW51bSBfX3BhY2tlZCB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L3B2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3B2L21tLmgKaW5kZXggZGZhYzg5ZGYw Yi4uMzRjNTFiY2ZiYSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9tbS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvbW0uaApAQCAtMzEsNiArMzEsNyBAQCB2b2lkIHB2 X2Rlc3Ryb3lfZ2R0KHN0cnVjdCB2Y3B1ICp2KTsKIGJvb2wgcHZfbWFwX2xkdF9zaGFkb3dfcGFn ZSh1bnNpZ25lZCBpbnQgb2ZmKTsKIGJvb2wgcHZfZGVzdHJveV9sZHQoc3RydWN0IHZjcHUgKnYp OwogCit2b2lkIHhwdGlfdmNwdV9kZXN0cm95KHN0cnVjdCB2Y3B1ICp2KTsKIGludCB4cHRpX2Rv bWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpOwogdm9pZCB4cHRpX2RvbWFpbl9kZXN0cm95KHN0 cnVjdCBkb21haW4gKmQpOwogCkBAIC02NSw2ICs2Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBw dl9tYXBfbGR0X3NoYWRvd19wYWdlKHVuc2lnbmVkIGludCBvZmYpIHsgcmV0dXJuIGZhbHNlOyB9 CiBzdGF0aWMgaW5saW5lIGJvb2wgcHZfZGVzdHJveV9sZHQoc3RydWN0IHZjcHUgKnYpCiB7IEFT U0VSVF9VTlJFQUNIQUJMRSgpOyByZXR1cm4gZmFsc2U7IH0KIAorc3RhdGljIGlubGluZSB2b2lk IHhwdGlfdmNwdV9pbml0KHN0cnVjdCB2Y3B1ICp2KSB7IH0KIHN0YXRpYyBpbmxpbmUgaW50IHhw dGlfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkgeyByZXR1cm4gMDsgfQogc3RhdGljIGlu bGluZSB2b2lkIHhwdGlfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkgeyB9CiAKLS0g CjIuMTMuNgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=