From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH RFC 43/44] x86/smp: Use the percpu TSS mapping Date: Thu, 4 Jan 2018 20:22:08 +0000 Message-ID: <1515097329-31902-44-git-send-email-andrew.cooper3@citrix.com> References: <1515097329-31902-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: <1515097329-31902-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: Andrew Cooper List-Id: xen-devel@lists.xenproject.org Q29uc3RydWN0aW9uIG9mIHRoZSBUU1MgaXMgdGhlIGZpbmFsIGFjdGlvbiByZW1haW5pbmcgaW4g bG9hZF9zeXN0ZW1fdGFibGVzKCksCmFuZCBpcyBsaWZ0ZWQgdG8gZWFybHlfc3dpdGNoX3RvX2lk bGUoKS4gIEFzIGEgc2luZ2xlIGdsb2JhbCBUU1MgaXMgaW4gdXNlLAp0aGUgcGVyX2NwdSBpbml0 X3RzcyB2YXJpYWJsZSBpcyBkcm9wcGVkLgoKVGhlIHNldHRpbmcgb2YgSE9TVF9UUl9CQVNFIGlz IG5vdyBhIGNvbnN0YW50LCBzbyBtb3ZlcyB0byBjb25zdHJ1Y3Rfdm1jcygpLgpUaGlzIG1lYW5z IHRoYXQgdm14X3NldF9ob3N0X2VudigpIGFuZCBhcmNoX3ZteF9zdHJ1Y3QuaG9zdGVudl9taWdy YXRlZCBjYW4gYmUKZHJvcHBlZCBhcyB3ZWxsLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3Bl ciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvY3B1L2NvbW1v bi5jICAgICAgICAgIHwgNjYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyAgICAgICAgfCAyMiArLS0tLS0tLS0tLS0tCiB4 ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICAgIHwgMjIgKysrKysrKysrKy0tLQogeGVu L2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAgICAgICB8ICA2ICsrLS0KIHhlbi9hcmNoL3g4Ni90 cmFwcy5jICAgICAgICAgICAgICAgfCAgNyArKy0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92 bXgvdm1jcy5oIHwgIDEgLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCAgICB8ICAy IC0tCiA3IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jIGIveGVuL2FyY2gveDg2L2Nw dS9jb21tb24uYwppbmRleCAyNjJlY2NjLi41NzlkMTQ5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvY3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMKQEAgLTY0Miw3 MiArNjQyLDYgQEAgdm9pZCBfX2luaXQgZWFybHlfY3B1X2luaXQodm9pZCkKIH0KIAogLyoKLSAq IFNldHMgdXAgc3lzdGVtIHRhYmxlcyBhbmQgZGVzY3JpcHRvcnMuCi0gKgotICogLSBTZXRzIHVw IFRTUyB3aXRoIHN0YWNrIHBvaW50ZXJzLCBpbmNsdWRpbmcgSVNUcwotICogLSBJbnNlcnRzIFRT UyBzZWxlY3RvciBpbnRvIHJlZ3VsYXIgYW5kIGNvbXBhdCBHRFRzCi0gKiAtIExvYWRzIEdEVCwg SURULCBUUiB0aGVuIG51bGwgTERUCi0gKiAtIFNldHMgdXAgSVNUIHJlZmVyZW5jZXMgaW4gdGhl IElEVAotICovCi12b2lkIGxvYWRfc3lzdGVtX3RhYmxlcyh2b2lkKQotewotCXVuc2lnbmVkIGxv bmcgc3RhY2tfYm90dG9tID0gZ2V0X3N0YWNrX2JvdHRvbSgpLAotCQlzdGFja190b3AgPSBzdGFj a19ib3R0b20gJiB+KFNUQUNLX1NJWkUgLSAxKTsKLQotCXN0cnVjdCB0c3Nfc3RydWN0ICp0c3Mg PSAmdGhpc19jcHUoaW5pdF90c3MpOwotCXN0cnVjdCBkZXNjX3N0cnVjdCAqZ2R0ID0KLQkJdGhp c19jcHUoZ2R0X3RhYmxlKSAtIEZJUlNUX1JFU0VSVkVEX0dEVF9FTlRSWTsKLQlzdHJ1Y3QgZGVz Y19zdHJ1Y3QgKmNvbXBhdF9nZHQgPQotCQl0aGlzX2NwdShjb21wYXRfZ2R0X3RhYmxlKSAtIEZJ UlNUX1JFU0VSVkVEX0dEVF9FTlRSWTsKLQotCSp0c3MgPSAoc3RydWN0IHRzc19zdHJ1Y3Qpewot CQkvKiBNYWluIHN0YWNrIGZvciBpbnRlcnJ1cHRzL2V4Y2VwdGlvbnMuICovCi0JCS5yc3AwID0g c3RhY2tfYm90dG9tLAotCi0JCS8qIFJpbmcgMSBhbmQgMiBzdGFja3MgcG9pc29uZWQuICovCi0J CS5yc3AxID0gMHg4NjAwMTExMTExMTExMTExdWwsCi0JCS5yc3AyID0gMHg4NjAwMTExMTExMTEx MTExdWwsCi0KLQkJLyoKLQkJICogTUNFLCBOTUkgYW5kIERvdWJsZSBGYXVsdCBoYW5kbGVycyBn ZXQgdGhlaXIgb3duIHN0YWNrcy4KLQkJICogQWxsIG90aGVycyBwb2lzb25lZC4KLQkJICovCi0J CS5pc3QgPSB7Ci0JCQlbSVNUX01DRSAtIDFdID0gc3RhY2tfdG9wICsgSVNUX01DRSAqIFBBR0Vf U0laRSwKLQkJCVtJU1RfREYgIC0gMV0gPSBzdGFja190b3AgKyBJU1RfREYgICogUEFHRV9TSVpF LAotCQkJW0lTVF9OTUkgLSAxXSA9IHN0YWNrX3RvcCArIElTVF9OTUkgKiBQQUdFX1NJWkUsCi0K LQkJCVtJU1RfTUFYIC4uLiBBUlJBWV9TSVpFKHRzcy0+aXN0KSAtIDFdID0KLQkJCQkweDg2MDAx MTExMTExMTExMTF1bCwKLQkJfSwKLQotCQkuYml0bWFwID0gSU9CTVBfSU5WQUxJRF9PRkZTRVQs Ci0JfTsKLQotCV9zZXRfdHNzbGR0X2Rlc2MoCi0JCWdkdCArIFRTU19FTlRSWSwKLQkJKHVuc2ln bmVkIGxvbmcpdHNzLAotCQlvZmZzZXRvZihzdHJ1Y3QgdHNzX3N0cnVjdCwgX19jYWNoZWxpbmVf ZmlsbGVyKSAtIDEsCi0JCVNZU19ERVNDX3Rzc19hdmFpbCk7Ci0JX3NldF90c3NsZHRfZGVzYygK LQkJY29tcGF0X2dkdCArIFRTU19FTlRSWSwKLQkJKHVuc2lnbmVkIGxvbmcpdHNzLAotCQlvZmZz ZXRvZihzdHJ1Y3QgdHNzX3N0cnVjdCwgX19jYWNoZWxpbmVfZmlsbGVyKSAtIDEsCi0JCVNZU19E RVNDX3Rzc19idXN5KTsKLQotCWx0cihUU1NfRU5UUlkgPDwgMyk7Ci0KLQkvKgotCSAqIEJvdHRv bS1vZi1zdGFjayBtdXN0IGJlIDE2LWJ5dGUgYWxpZ25lZCEKLQkgKgotCSAqIERlZmVyIGNoZWNr cyB1bnRpbCBleGNlcHRpb24gc3VwcG9ydCBpcyBzdWZmaWNpZW50bHkgc2V0IHVwLgotCSAqLwot CUJVSUxEX0JVR19PTigoc2l6ZW9mKHN0cnVjdCBjcHVfaW5mbykgLQotCQkgICAgICBvZmZzZXRv ZihzdHJ1Y3QgY3B1X2luZm8sIGd1ZXN0X2NwdV91c2VyX3JlZ3MuZXMpKSAmIDB4Zik7Ci0JQlVH X09OKHN5c3RlbV9zdGF0ZSAhPSBTWVNfU1RBVEVfZWFybHlfYm9vdCAmJiAoc3RhY2tfYm90dG9t ICYgMHhmKSk7Ci19Ci0KLS8qCiAgKiBjcHVfaW5pdCgpIGluaXRpYWxpemVzIHN0YXRlIHRoYXQg aXMgcGVyLUNQVS4gU29tZSBkYXRhIGlzIGFscmVhZHkKICAqIGluaXRpYWxpemVkIChuYXR1cmFs bHkpIGluIHRoZSBib290c3RyYXAgcHJvY2Vzcywgc3VjaCBhcyB0aGUgR0RUCiAgKiBhbmQgSURU LiBXZSByZWxvYWQgdGhlbSBuZXZlcnRoZWxlc3MsIHRoaXMgZnVuY3Rpb24gYWN0cyBhcyBhCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMgYi94ZW4vYXJjaC94ODYvaHZt L3ZteC92bWNzLmMKaW5kZXggNDgzZjcyZC4uOTNkOTc5ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS92bXgvdm1jcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYwpAQCAt Nzk4LDE0ICs3OTgsNiBAQCB2b2lkIHZteF92bWNzX2V4aXQoc3RydWN0IHZjcHUgKnYpCiAgICAg fQogfQogCi1zdGF0aWMgdm9pZCB2bXhfc2V0X2hvc3RfZW52KHN0cnVjdCB2Y3B1ICp2KQotewot ICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0KLSAgICBfX3Ztd3Jp dGUoSE9TVF9UUl9CQVNFLCAodW5zaWduZWQgbG9uZykmcGVyX2NwdShpbml0X3RzcywgY3B1KSk7 Ci0KLX0KLQogdm9pZCB2bXhfY2xlYXJfbXNyX2ludGVyY2VwdChzdHJ1Y3QgdmNwdSAqdiwgdW5z aWduZWQgaW50IG1zciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSB2bXhfbXNy X2ludGVyY2VwdF90eXBlIHR5cGUpCiB7CkBAIC04OTgsMTIgKzg5MCw2IEBAIHZvaWQgdm14X3Zt Y3Nfc3dpdGNoKHBhZGRyX3QgZnJvbSwgcGFkZHJfdCB0bykKICAgICB2bXgtPmxhdW5jaGVkID0g MDsKICAgICB0aGlzX2NwdShjdXJyZW50X3ZtY3MpID0gdG87CiAKLSAgICBpZiAoIHZteC0+aG9z dGVudl9taWdyYXRlZCApCi0gICAgewotICAgICAgICB2bXgtPmhvc3RlbnZfbWlncmF0ZWQgPSAw OwotICAgICAgICB2bXhfc2V0X2hvc3RfZW52KGN1cnJlbnQpOwotICAgIH0KLQogICAgIHNwaW5f dW5sb2NrKCZ2bXgtPnZtY3NfbG9jayk7CiB9CiAKQEAgLTExMjMsNiArMTEwOSw3IEBAIHN0YXRp YyBpbnQgY29uc3RydWN0X3ZtY3Moc3RydWN0IHZjcHUgKnYpCiAgICAgLyogSG9zdCBzeXN0ZW0g dGFibGVzLiAqLwogICAgIF9fdm13cml0ZShIT1NUX0lEVFJfQkFTRSwgUEVSQ1BVX0lEVF9NQVBQ SU5HKTsKICAgICBfX3Ztd3JpdGUoSE9TVF9HRFRSX0JBU0UsIFBFUkNQVV9HRFRfTUFQUElORyk7 CisgICAgX192bXdyaXRlKEhPU1RfVFJfQkFTRSwgICBQRVJDUFVfVFNTX01BUFBJTkcpOwogCiAg ICAgLyogSG9zdCBkYXRhIHNlbGVjdG9ycy4gKi8KICAgICBfX3Ztd3JpdGUoSE9TVF9TU19TRUxF Q1RPUiwgX19IWVBFUlZJU09SX0RTKTsKQEAgLTE3MDEsMTMgKzE2ODgsNiBAQCB2b2lkIHZteF9k b19yZXN1bWUoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIHZteF9sb2FkX3ZtY3Modik7CiAgICAg ICAgIGh2bV9taWdyYXRlX3RpbWVycyh2KTsKICAgICAgICAgaHZtX21pZ3JhdGVfcGlycXModik7 Ci0gICAgICAgIHZteF9zZXRfaG9zdF9lbnYodik7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIEJv dGggbjEgVk1DUyBhbmQgbjIgVk1DUyBuZWVkIHRvIHVwZGF0ZSB0aGUgaG9zdCBlbnZpcm9ubWVu dCBhZnRlciAKLSAgICAgICAgICogVkNQVSBtaWdyYXRpb24uIFRoZSBlbnZpcm9ubWVudCBvZiBj dXJyZW50IFZNQ1MgaXMgdXBkYXRlZCBpbiBwbGFjZSwKLSAgICAgICAgICogYnV0IHRoZSBhY3Rp b24gb2YgYW5vdGhlciBWTUNTIGlzIGRlZmVycmVkIHRpbGwgaXQgaXMgc3dpdGNoZWQgaW4uCi0g ICAgICAgICAqLwotICAgICAgICB2LT5hcmNoLmh2bV92bXguaG9zdGVudl9taWdyYXRlZCA9IDE7 CiAKICAgICAgICAgaHZtX2FzaWRfZmx1c2hfdmNwdSh2KTsKICAgICB9CmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCmluZGV4IGMwZjcyODku LjM0NThlYTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCisrKyBiL3hlbi9hcmNo L3g4Ni9zZXR1cC5jCkBAIC05MCw4ICs5MCw2IEBAIHVuc2lnbmVkIGxvbmcgX19yZWFkX21vc3Rs eSB4ZW5fcGh5c19zdGFydDsKIAogdW5zaWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5IHhlbl92aXJ0 X2VuZDsKIAotREVGSU5FX1BFUl9DUFUoc3RydWN0IHRzc19zdHJ1Y3QsIGluaXRfdHNzKTsKLQog Y2hhciBfX3NlY3Rpb24oIi5ic3Muc3RhY2tfYWxpZ25lZCIpIF9fYWxpZ25lZChTVEFDS19TSVpF KQogICAgIGNwdTBfc3RhY2tbU1RBQ0tfU0laRV07CiAKQEAgLTI1OCw2ICsyNTYsMTAgQEAgdm9p ZCBlYXJseV9zd2l0Y2hfdG9faWRsZShib29sIGJzcCkKICAgICAgICAgLmJhc2UgPSBQRVJDUFVf SURUX01BUFBJTkcsCiAgICAgICAgIC5saW1pdCA9IDB4ZmZmZiwKICAgICB9OworICAgIHN0cnVj dCBkZXNjX3N0cnVjdCAqZ2R0ID0KKyAgICAgICAgdGhpc19jcHUoZ2R0X3RhYmxlKSAtIEZJUlNU X1JFU0VSVkVEX0dEVF9FTlRSWTsKKyAgICBzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmNvbXBhdF9nZHQg PQorICAgICAgICB0aGlzX2NwdShjb21wYXRfZ2R0X3RhYmxlKSAtIEZJUlNUX1JFU0VSVkVEX0dE VF9FTlRSWTsKIAogICAgIHNldF9jdXJyZW50KHYpOwogICAgIHBlcl9jcHUoY3Vycl92Y3B1LCBj cHUpID0gdjsKQEAgLTI2Nyw4ICsyNjksMjAgQEAgdm9pZCBlYXJseV9zd2l0Y2hfdG9faWRsZShi b29sIGJzcCkKICAgICBwZXJfY3B1KGN1cnJfcHRiYXNlLCBjcHUpID0gdi0+YXJjaC5jcjM7CiAg ICAgcGVyX2NwdShjdXJyX2V4dGVuZGVkX2RpcmVjdG1hcCwgY3B1KSA9IHRydWU7CiAKKyAgICBf c2V0X3Rzc2xkdF9kZXNjKAorICAgICAgICBnZHQgKyBUU1NfRU5UUlksCisgICAgICAgICh1bnNp Z25lZCBsb25nKSZnbG9iYWxfdHNzLAorICAgICAgICBvZmZzZXRvZihzdHJ1Y3QgdHNzX3N0cnVj dCwgX19jYWNoZWxpbmVfZmlsbGVyKSAtIDEsCisgICAgICAgIFNZU19ERVNDX3Rzc19hdmFpbCk7 CisgICAgX3NldF90c3NsZHRfZGVzYygKKyAgICAgICAgY29tcGF0X2dkdCArIFRTU19FTlRSWSwK KyAgICAgICAgKHVuc2lnbmVkIGxvbmcpJmdsb2JhbF90c3MsCisgICAgICAgIG9mZnNldG9mKHN0 cnVjdCB0c3Nfc3RydWN0LCBfX2NhY2hlbGluZV9maWxsZXIpIC0gMSwKKyAgICAgICAgU1lTX0RF U0NfdHNzX2J1c3kpOworCiAgICAgbGdkdCgmZ2R0cik7CiAgICAgbGlkdCgmaWR0cik7CisgICAg bHRyKFRTU19FTlRSWSA8PCAzKTsKICAgICBsbGR0KDApOwogCiAgICAgaWYgKCBsaWtlbHkoIWJz cCkgKSAvKiBCU1AgSVNUIHNldHVwIGRlZmVycmVkLiAqLwpAQCAtNjU0LDkgKzY2OCw3IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBub3JldHVybiByZWluaXRfYnNwX3N0YWNrKHZvaWQpCiAgICAgLyog U2FuaXR5IGNoZWNrIHRoYXQgSVNUIHNldHRpbmdzIHdlcmVuJ3Qgc2V0IHVwIGJlZm9yZSB0aGlz IHBvaW50LiAqLwogICAgIEFTU0VSVChNQVNLX0VYVFIoaWR0X3RhYmxlc1swXVtUUkFQX25taV0u YSwgN1VMIDw8IDMyKSA9PSAwKTsKIAotICAgIC8qIFVwZGF0ZSBUU1MgYW5kIElTVHMgKi8KLSAg ICBsb2FkX3N5c3RlbV90YWJsZXMoKTsKLQorICAgIC8qIEVuYWJsZSBCU1AgSVNUcyBub3cgd2Un dmUgc3dpdGNoZWQgc3RhY2suICovCiAgICAgZW5hYmxlX2VhY2hfaXN0KGlkdF90YWJsZXNbMF0p OwogCiAgICAgLyogVXBkYXRlIFNZU0NBTEwgdHJhbXBvbGluZXMgKi8KZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9zbXBib290LmMgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCmluZGV4IGZhOTll NGQuLjY5NzY3ZTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKKysrIGIveGVu L2FyY2gveDg2L3NtcGJvb3QuYwpAQCAtMzEwLDYgKzMxMCw4IEBAIHZvaWQgc3RhcnRfc2Vjb25k YXJ5KHZvaWQgKnVudXNlZCkKIAogICAgIGVhcmx5X3N3aXRjaF90b19pZGxlKGZhbHNlKTsKIAor ICAgIC8qIEZ1bGwgZXhjZXB0aW9uIHN1cHBvcnQgZnJvbSBoZXJlIG9uIGluLiAqLworCiAgICAg cmRtc3JsKE1TUl9FRkVSLCB0aGlzX2NwdShlZmVyKSk7CiAKICAgICAvKgpAQCAtMzMwLDEwICsz MzIsNiBAQCB2b2lkIHN0YXJ0X3NlY29uZGFyeSh2b2lkICp1bnVzZWQpCiAgICAgICovCiAgICAg c3Bpbl9kZWJ1Z19kaXNhYmxlKCk7CiAKLSAgICBsb2FkX3N5c3RlbV90YWJsZXMoKTsKLQotICAg IC8qIEZ1bGwgZXhjZXB0aW9uIHN1cHBvcnQgZnJvbSBoZXJlIG9uIGluLiAqLwotCiAgICAgLyog U2FmZSB0byBlbmFibGUgZmVhdHVyZSBzdWNoIGFzIENSNC5NQ0Ugd2l0aCB0aGUgSURUIHNldCB1 cCBub3cuICovCiAgICAgd3JpdGVfY3I0KG1tdV9jcjRfZmVhdHVyZXMpOwogCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDBhYjEw YmEuLjZiMDJhNWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9h cmNoL3g4Ni90cmFwcy5jCkBAIC01NTEsNyArNTUxLDcgQEAgdm9pZCBzaG93X3N0YWNrX292ZXJm bG93KHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQog CiAgICAgcHJpbnRrKCJWYWxpZCBzdGFjayByYW5nZTogJXAtJXAsIHNwPSVwLCB0c3MucnNwMD0l cFxuIiwKICAgICAgICAgICAgKHZvaWQgKillc3BfdG9wLCAodm9pZCAqKWVzcF9ib3R0b20sICh2 b2lkICopZXNwLAotICAgICAgICAgICAodm9pZCAqKXBlcl9jcHUoaW5pdF90c3MsIGNwdSkucnNw MCk7CisgICAgICAgICAgICh2b2lkICopZ2xvYmFsX3Rzcy5yc3AwKTsKIAogICAgIC8qCiAgICAg ICogVHJpZ2dlciBvdmVyZmxvdyB0cmFjZSBpZiAlZXNwIGlzIGFueXdoZXJlIHdpdGhpbiB0aGUg Z3VhcmQgcGFnZSwgb3IKQEAgLTE4MDQsNyArMTgwNCw2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBz ZXRfaW50cl9nYXRlKHVuc2lnbmVkIGludCBuLCB2b2lkICphZGRyKQogCiB2b2lkIGxvYWRfVFIo dm9pZCkKIHsKLSAgICBzdHJ1Y3QgdHNzX3N0cnVjdCAqdHNzID0gJnRoaXNfY3B1KGluaXRfdHNz KTsKICAgICBzdHJ1Y3QgZGVzY19wdHIgb2xkX2dkdCwgdHNzX2dkdCA9IHsKICAgICAgICAgLmJh c2UgPSAobG9uZykodGhpc19jcHUoZ2R0X3RhYmxlKSAtIEZJUlNUX1JFU0VSVkVEX0dEVF9FTlRS WSksCiAgICAgICAgIC5saW1pdCA9IExBU1RfUkVTRVJWRURfR0RUX0JZVEUKQEAgLTE4MTIsMTIg KzE4MTEsMTIgQEAgdm9pZCBsb2FkX1RSKHZvaWQpCiAKICAgICBfc2V0X3Rzc2xkdF9kZXNjKAog ICAgICAgICB0aGlzX2NwdShnZHRfdGFibGUpICsgVFNTX0VOVFJZIC0gRklSU1RfUkVTRVJWRURf R0RUX0VOVFJZLAotICAgICAgICAodW5zaWduZWQgbG9uZyl0c3MsCisgICAgICAgICh1bnNpZ25l ZCBsb25nKSZnbG9iYWxfdHNzLAogICAgICAgICBvZmZzZXRvZihzdHJ1Y3QgdHNzX3N0cnVjdCwg X19jYWNoZWxpbmVfZmlsbGVyKSAtIDEsCiAgICAgICAgIFNZU19ERVNDX3Rzc19hdmFpbCk7CiAg ICAgX3NldF90c3NsZHRfZGVzYygKICAgICAgICAgdGhpc19jcHUoY29tcGF0X2dkdF90YWJsZSkg KyBUU1NfRU5UUlkgLSBGSVJTVF9SRVNFUlZFRF9HRFRfRU5UUlksCi0gICAgICAgICh1bnNpZ25l ZCBsb25nKXRzcywKKyAgICAgICAgKHVuc2lnbmVkIGxvbmcpJmdsb2JhbF90c3MsCiAgICAgICAg IG9mZnNldG9mKHN0cnVjdCB0c3Nfc3RydWN0LCBfX2NhY2hlbGluZV9maWxsZXIpIC0gMSwKICAg ICAgICAgU1lTX0RFU0NfdHNzX2J1c3kpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS92bXgvdm1jcy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaApp bmRleCA4ZmI5ZTNjLi5jMWJkNDY4IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS92bXgvdm1jcy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmgKQEAg LTE1Nyw3ICsxNTcsNiBAQCBzdHJ1Y3QgYXJjaF92bXhfc3RydWN0IHsKICAgICBzdHJ1Y3Qgc2Vn bWVudF9yZWdpc3RlciB2bTg2X3NhdmVkX3NlZ1t4ODZfc2VnX3RyICsgMV07CiAgICAgLyogUmVt ZW1iZXIgRUZMQUdTIHdoaWxlIGluIHZpcnR1YWwgODA4NiBtb2RlICovCiAgICAgdWludDMyX3Qg ICAgICAgICAgICAgdm04Nl9zYXZlZF9lZmxhZ3M7Ci0gICAgaW50ICAgICAgICAgICAgICAgICAg aG9zdGVudl9taWdyYXRlZDsKIAogICAgIC8qIEJpdG1hcCB0byBjb250cm9sIHZtZXhpdCBwb2xp Y3kgZm9yIE5vbi1yb290IFZNUkVBRC9WTVdSSVRFICovCiAgICAgc3RydWN0IHBhZ2VfaW5mbyAg ICAgKnZtcmVhZF9iaXRtYXA7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nl c3Nvci5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAppbmRleCAyMjg4MmE2Li4y OTkwYWZkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKQEAgLTQ3Nyw4ICs0NzcsNiBAQCBleHRl cm4gaWR0X2VudHJ5X3QgKmlkdF90YWJsZXNbXTsKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCB0c3Nf c3RydWN0IGdsb2JhbF90c3M7CiAKLURFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgdHNzX3N0cnVjdCwg aW5pdF90c3MpOwotCiBleHRlcm4gdm9pZCBpbml0X2ludDgwX2RpcmVjdF90cmFwKHN0cnVjdCB2 Y3B1ICp2KTsKIAogZXh0ZXJuIHZvaWQgZG9fd3JpdGVfcHRiYXNlKHN0cnVjdCB2Y3B1ICp2LCBi b29sIHRsYl9tYWludGVuYW5jZSk7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=