From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v3 12/15] x86: Implement L2 CAT in psr.c. Date: Tue, 25 Oct 2016 11:41:00 +0800 Message-ID: <1477366863-5246-13-git-send-email-yi.y.sun@linux.intel.com> References: <1477366863-5246-1-git-send-email-yi.y.sun@linux.intel.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 1byrZ9-0004cI-BF for xen-devel@lists.xenproject.org; Tue, 25 Oct 2016 02:34:15 +0000 In-Reply-To: <1477366863-5246-1-git-send-email-yi.y.sun@linux.intel.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: wei.liu2@citrix.com, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org RW5hYmxlIEwyIENBVCAoQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5KSBmZWF0dXJlIHN1cHBv cnQgaW4KcHNyLmMuCi0gSW1wbGVtZW50ICdzdHJ1Y3QgZmVhdF9vcHMnIGNhbGxiYWNrIGZ1bmN0 aW9ucyBmb3IgTDIgQ0FULgotIEluaXRpYWxpemUgTDIgQ0FUIGZlYXR1cmUgYW5kIGFkZCBpdCBp bnRvIGZlYXR1cmUgbGlzdCB0bwogIGVuYWJsZSBMMiBDQVQgaW4gcHNyLmMuCi0gRnJlZSByZXNv dXJjZXMgd2hlbiBDUFUgZGVhZCBvciBjYW5jZWxsZWQuCgpTaWduZWQtb2ZmLWJ5OiBIZSBDaGVu IDxoZS5jaGVuQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1 bkBsaW51eC5pbnRlbC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L3Bzci5jICAgICAgICAgICAgICB8 IDIzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB4ZW4vaW5jbHVk ZS9hc20teDg2L21zci1pbmRleC5oIHwgICAxICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmgg ICAgICAgfCAgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCAyMjkgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYv cHNyLmMKaW5kZXggMzJmODk5YS4uYzZmNTdjMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bz ci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwpAQCAtMzEsOSArMzEsMTMgQEAKICNkZWZpbmUg Q09TX01BWCAgMQogI2RlZmluZSBDRFBfRkxBRyAyCiAKKyNkZWZpbmUgQ0FUX0NCTV9MRU5fTUFT SyAweDFmCisjZGVmaW5lIENBVF9DT1NfTUFYX01BU0sgMHhmZmZmCisKIGVudW0gcHNyX2ZlYXRf dHlwZSB7CiAgICAgUFNSX1NPQ0tFVF9MM19DQVQgPSAwLAogICAgIFBTUl9TT0NLRVRfTDNfQ0RQ LAorICAgIFBTUl9TT0NLRVRfTDJfQ0FULAogfTsKIAogc3RydWN0IGZlYXRfbm9kZTsKQEAgLTE2 MSw3ICsxNjUsMTAgQEAgc3RydWN0IGZlYXRfbm9kZSB7CiB9OwogCiBzdHJ1Y3QgcHNyX2NhdF9z b2NrZXRfaW5mbyB7Ci0gICAgLyogYml0IDF+MDogWzAxXS0+TDMgQ0FULW9ubHksIFsxMF0tPkwz IENEUCAqLworICAgIC8qCisgICAgICogYml0IDF+MDogWzAxXS0+TDMgQ0FULW9ubHksIFsxMF0t PkwzIENEUAorICAgICAqIGJpdCAyOiAgIEwyIENBVAorICAgICAqLwogICAgIHVuc2lnbmVkIGlu dCBmZWF0X21hc2s7CiAgICAgdW5zaWduZWQgaW50IG5yX2ZlYXQ7CiAgICAgc3RydWN0IGxpc3Rf aGVhZCBmZWF0X2xpc3Q7CkBAIC0yMDQsOCArMjExLDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBf X3JlYWRfbW9zdGx5IG9wdF9jb3NfbWF4ID0gTUFYX0NPU19SRUdfTlVNIC0gMTsKIHN0YXRpYyB1 aW50NjRfdCBybWlkX21hc2s7CiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHBzcl9hc3Nv YywgcHNyX2Fzc29jKTsKIAotLyogRmVhdHVyZSBsaXN0IGVudHJ5IG9mIGZlYXR1cmUgTDMgQ0FU L0NEUC4gKi8KKy8qIERlY2xhcmUgZmVhdHVyZSBsaXN0IGVudHJ5LiAqLwogc3RhdGljIHN0cnVj dCBmZWF0X25vZGUgKmZlYXRfbDM7CitzdGF0aWMgc3RydWN0IGZlYXRfbm9kZSAqZmVhdF9sMjsK IAogLyogQ29tbW9uIGZ1bmN0aW9ucy4gKi8KIHN0YXRpYyB2b2lkIGZyZWVfZmVhdHVyZShzdHJ1 Y3QgcHNyX2NhdF9zb2NrZXRfaW5mbyAqaW5mbykKQEAgLTIyOCw2ICsyMzYsMTIgQEAgc3RhdGlj IHZvaWQgZnJlZV9mZWF0dXJlKHN0cnVjdCBwc3JfY2F0X3NvY2tldF9pbmZvICppbmZvKQogICAg ICAgICB4ZnJlZShmZWF0X2wzKTsKICAgICAgICAgZmVhdF9sMyA9IE5VTEw7CiAgICAgfQorCisg ICAgaWYgKCBmZWF0X2wyICkKKyAgICB7CisgICAgICAgIHhmcmVlKGZlYXRfbDIpOworICAgICAg ICBmZWF0X2wyID0gTlVMTDsKKyAgICB9CiB9CiAKIHN0YXRpYyBib29sX3QgcHNyX2NoZWNrX2Ni bSh1bnNpZ25lZCBpbnQgY2JtX2xlbiwgdWludDY0X3QgY2JtKQpAQCAtMjUzLDYgKzI2NywxOTQg QEAgc3RhdGljIGJvb2xfdCBwc3JfY2hlY2tfY2JtKHVuc2lnbmVkIGludCBjYm1fbGVuLCB1aW50 NjRfdCBjYm0pCiAgICAgcmV0dXJuIDE7CiB9CiAKKy8qIEwyIENBVCBjYWxsYmFjayBmdW5jdGlv bnMgaW1wbGVtZW50YXRpb24uICovCitzdGF0aWMgdm9pZCBsMl9jYXRfaW5pdF9mZWF0dXJlKHVu c2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlYngsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBlY3gsIHVuc2lnbmVkIGludCBlZHgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwc3JfY2F0X3NvY2tldF9pbmZvICppbmZvKQor eworICAgIHN0cnVjdCBwc3JfY2F0X2h3X2luZm8gbDJfY2F0OworICAgIHVuc2lnbmVkIGludCBz b2NrZXQ7CisKKyAgICAvKiBObyB2YWxpZCB2YWx1ZXMgc28gZG8gbm90IGVuYWJsZSB0aGUgZmVh dHVyZS4gKi8KKyAgICBpZiAoICFlYXggfHwgIWVkeCApCisgICAgICAgIHJldHVybjsKKworICAg IGwyX2NhdC5jYm1fbGVuID0gKGVheCAmIENBVF9DQk1fTEVOX01BU0spICsgMTsKKyAgICBsMl9j YXQuY29zX21heCA9IG1pbihvcHRfY29zX21heCwgZWR4ICYgQ0FUX0NPU19NQVhfTUFTSyk7CisK KyAgICAvKiBjb3M9MCBpcyByZXNlcnZlZCBhcyBkZWZhdWx0IGNibShhbGwgb25lcykuICovCisg ICAgZmVhdC0+Y29zX3JlZ192YWxbMF0gPSAoMXVsbCA8PCBsMl9jYXQuY2JtX2xlbikgLSAxOwor CisgICAgZmVhdC0+ZmVhdHVyZSA9IFBTUl9TT0NLRVRfTDJfQ0FUOworICAgIF9fc2V0X2JpdChQ U1JfU09DS0VUX0wyX0NBVCwgJmluZm8tPmZlYXRfbWFzayk7CisKKyAgICBmZWF0LT5pbmZvID0g bDJfY2F0OworCisgICAgaW5mby0+bnJfZmVhdCsrOworCisgICAgLyogQWRkIHRoaXMgZmVhdHVy ZSBpbnRvIGxpc3QuICovCisgICAgbGlzdF9hZGRfdGFpbCgmZmVhdC0+bGlzdCwgJmluZm8tPmZl YXRfbGlzdCk7CisKKyAgICBzb2NrZXQgPSBjcHVfdG9fc29ja2V0KHNtcF9wcm9jZXNzb3JfaWQo KSk7CisgICAgcHJpbnRrKFhFTkxPR19JTkZPICJMMiBDQVQ6IGVuYWJsZWQgb24gc29ja2V0ICV1 LCBjb3NfbWF4OiV1LCBjYm1fbGVuOiV1LlxuIiwKKyAgICAgICAgICAgc29ja2V0LCBmZWF0LT5p bmZvLmNvc19tYXgsIGZlYXQtPmluZm8uY2JtX2xlbik7Cit9CisKK3N0YXRpYyBib29sIGwyX2Nh dF9nZXRfZmVhdF9pbmZvKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNibV90eXBlIHR5cGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRbXSwgdWludDMyX3QgYXJyYXlfbGVuKQor eworICAgIGlmICggdHlwZSAhPSBQU1JfQ0JNX1RZUEVfTDIgfHwgIWRhdCB8fCAyID4gYXJyYXlf bGVuICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZGF0W0NCTV9MRU5dID0gZmVhdC0+ aW5mby5jYm1fbGVuOworICAgIGRhdFtDT1NfTUFYXSA9IGZlYXQtPmluZm8uY29zX21heDsKKwor ICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW50IGwyX2NhdF9nZXRfdmFsKGNvbnN0IHN0 cnVjdCBmZWF0X25vZGUgKmZlYXQsIHVuc2lnbmVkIGludCBjb3MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgIGVudW0gY2JtX3R5cGUgdHlwZSwgdWludDY0X3QgKnZhbCkKK3sKKyAgICBpZiAo IHR5cGUgIT0gUFNSX0NCTV9UWVBFX0wyICkKKyAgICAgICAgIHJldHVybiAwOworCisgICAgaWYg KCBjb3MgPiBmZWF0LT5pbmZvLmNvc19tYXggKQorICAgICAgICBjb3MgPSAwOworCisgICAgLyog TDIgQ0FUICovCisgICAgKnZhbCA9ICBmZWF0LT5jb3NfcmVnX3ZhbFtjb3NdOworCisgICAgcmV0 dXJuIDE7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbDJfY2F0X2dldF9tYXhfY29zX21heChj b25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KQoreworICAgIHJldHVybiBmZWF0LT5pbmZvLmNv c19tYXg7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbDJfY2F0X2dldF9jb3NfbnVtKGNvbnN0 IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpCit7CisgICAgLyogTDIgQ0FUIHVzZXMgb25lIENPUy4g Ki8KKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGludCBsMl9jYXRfZ2V0X29sZF92YWwodWlu dDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg ZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IG9sZF9jb3MpCit7CisgICAgaWYgKCBvbGRfY29zID4gZmVhdC0+aW5mby5jb3NfbWF4ICkK KyAgICAgICAgLyogVXNlIGRlZmF1bHQgdmFsdWUuICovCisgICAgICAgIG9sZF9jb3MgPSAwOwor CisgICAgdmFsWzBdID0gZmVhdC0+Y29zX3JlZ192YWxbb2xkX2Nvc107CisKKyAgICAvKiBMMiBD QVQgdXNlcyBvbmUgQ09TLiAqLworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IGwyX2Nh dF9zZXRfbmV3X3ZhbCh1aW50NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgb2xkX2NvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gY2JtX3R5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQ2NF90IG0pCit7CisgICAgaWYgKCB0eXBlID09IFBTUl9DQk1fVFlQRV9MMiApCisgICAgewor ICAgICAgICBpZiAoICFwc3JfY2hlY2tfY2JtKGZlYXQtPmluZm8uY2JtX2xlbiwgbSkgKQorICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgdmFsWzBdID0gbTsKKyAgICB9CisK KyAgICAvKiBMMiBDQVQgdXNlcyBvbmUgQ09TLiAqLworICAgIHJldHVybiAxOworfQorCitzdGF0 aWMgaW50IGwyX2NhdF9jb21wYXJlX3ZhbChjb25zdCB1aW50NjRfdCB2YWxbXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29zLCBib29sICpmb3VuZCkK K3sKKyAgICB1aW50NjRfdCBsMl9kZWZfY2JtOworCisgICAgbDJfZGVmX2NibSA9ICgxdWxsIDw8 IGZlYXQtPmluZm8uY2JtX2xlbikgLSAxOworCisgICAgLyogTDIgQ0FUICovCisgICAgaWYgKCBj b3MgPiBmZWF0LT5pbmZvLmNvc19tYXggKQorICAgIHsKKyAgICAgICAgaWYgKCB2YWxbMF0gIT0g bDJfZGVmX2NibSApCisgICAgICAgIHsKKyAgICAgICAgICAgICpmb3VuZCA9IGZhbHNlOworICAg ICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisgICAgICAgIH0KKyAgICAgICAgKmZvdW5kID0gdHJ1 ZTsKKyAgICB9CisgICAgZWxzZQorICAgICAgICAqZm91bmQgPSAodmFsWzBdID09IGZlYXQtPmNv c19yZWdfdmFsW2Nvc10pOworCisgICAgLyogTDIgQ0FUIHVzZXMgb25lIENPUy4gKi8KKyAgICBy ZXR1cm4gMTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBsMl9jYXRfZ2V0X2Nvc19tYXhfZnJv bV90eXBlKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjYm1fdHlwZSB0eXBlKQoreworICAg IGlmICggdHlwZSAhPSBQU1JfQ0JNX1RZUEVfTDIgKQorICAgICAgICByZXR1cm4gMDsKKworICAg IHJldHVybiBmZWF0LT5pbmZvLmNvc19tYXg7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbDJf Y2F0X2V4Y2VlZHNfY29zX21heChjb25zdCB1aW50NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBjb3MpCit7CisgICAgdWludDY0X3QgbDJfZGVmX2NibTsKKworICAgIGwyX2RlZl9jYm0gPSAo MXVsbCA8PCBmZWF0LT5pbmZvLmNibV9sZW4pIC0gMTsKKworICAgIC8qIEwyIENBVCAqLworICAg IGlmICggY29zID4gZmVhdC0+aW5mby5jb3NfbWF4ICYmCisgICAgICAgICB2YWxbMF0gIT0gbDJf ZGVmX2NibSApCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogRXhjZWVkIGNvc19tYXgg YW5kIHZhbHVlIHRvIHNldCBpcyBub3QgZGVmYXVsdCwKKyAgICAgICAgICAgICAqIHJldHVybiBl cnJvci4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvKiBM MiBDQVQgdXNlcyBvbmUgQ09TLiAqLworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IGwy X2NhdF93cml0ZV9tc3IodW5zaWduZWQgaW50IGNvcywgY29uc3QgdWludDY0X3QgdmFsW10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCkKK3sKKyAg ICAvKiBMMiBDQVQgKi8KKyAgICBpZiAoIGNvcyA+IGZlYXQtPmluZm8uY29zX21heCApCisgICAg ICAgIHJldHVybiAxOworCisgICAgZmVhdC0+Y29zX3JlZ192YWxbY29zXSA9IHZhbFswXTsKKyAg ICB3cm1zcmwoTVNSX0lBMzJfUFNSX0wyX01BU0soY29zKSwgdmFsWzBdKTsKKworICAgIC8qIEwy IENBVCB1c2VzIG9uZSBDT1MuICovCisgICAgcmV0dXJuIDE7Cit9CisKK3N0cnVjdCBmZWF0X29w cyBsMl9jYXRfb3BzID0geworICAgIC5pbml0X2ZlYXR1cmUgPSBsMl9jYXRfaW5pdF9mZWF0dXJl LAorICAgIC5nZXRfZmVhdF9pbmZvID0gbDJfY2F0X2dldF9mZWF0X2luZm8sCisgICAgLmdldF92 YWwgPSBsMl9jYXRfZ2V0X3ZhbCwKKyAgICAuZ2V0X21heF9jb3NfbWF4ID0gbDJfY2F0X2dldF9t YXhfY29zX21heCwKKyAgICAuZ2V0X2Nvc19udW0gPSBsMl9jYXRfZ2V0X2Nvc19udW0sCisgICAg LmdldF9vbGRfdmFsID0gbDJfY2F0X2dldF9vbGRfdmFsLAorICAgIC5zZXRfbmV3X3ZhbCA9IGwy X2NhdF9zZXRfbmV3X3ZhbCwKKyAgICAuY29tcGFyZV92YWwgPSBsMl9jYXRfY29tcGFyZV92YWws CisgICAgLmdldF9jb3NfbWF4X2Zyb21fdHlwZSA9IGwyX2NhdF9nZXRfY29zX21heF9mcm9tX3R5 cGUsCisgICAgLmV4Y2VlZHNfY29zX21heCA9IGwyX2NhdF9leGNlZWRzX2Nvc19tYXgsCisgICAg LndyaXRlX21zciA9IGwyX2NhdF93cml0ZV9tc3IsCit9OworCiAvKiBMMyBDQVQvQ0RQIGNhbGxi YWNrIGZ1bmN0aW9ucyBpbXBsZW1lbnRhdGlvbi4gKi8KIHN0YXRpYyB2b2lkIGwzX2NhdF9pbml0 X2ZlYXR1cmUodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVieCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGVjeCwgdW5zaWduZWQgaW50IGVkeCwK QEAgLTI2Nyw4ICs0NjksOCBAQCBzdGF0aWMgdm9pZCBsM19jYXRfaW5pdF9mZWF0dXJlKHVuc2ln bmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlYngsCiAgICAgaWYgKCAhZWF4IHx8ICFlZHggKQog ICAgICAgICByZXR1cm47CiAKLSAgICBsM19jYXQuY2JtX2xlbiA9IChlYXggJiAweDFmKSArIDE7 Ci0gICAgbDNfY2F0LmNvc19tYXggPSBtaW4ob3B0X2Nvc19tYXgsIGVkeCAmIDB4ZmZmZik7Cisg ICAgbDNfY2F0LmNibV9sZW4gPSAoZWF4ICYgQ0FUX0NCTV9MRU5fTUFTSykgKyAxOworICAgIGwz X2NhdC5jb3NfbWF4ID0gbWluKG9wdF9jb3NfbWF4LCBlZHggJiBDQVRfQ09TX01BWF9NQVNLKTsK IAogICAgIC8qIGNvcz0wIGlzIHJlc2VydmVkIGFzIGRlZmF1bHQgY2JtKGFsbCBvbmVzKS4gKi8K ICAgICBmZWF0LT5jb3NfcmVnX3ZhbFswXSA9ICgxdWxsIDw8IGwzX2NhdC5jYm1fbGVuKSAtIDE7 CkBAIC0xMjQ2LDYgKzE0NDgsMTQgQEAgc3RhdGljIGludCBjYXRfY3B1X3ByZXBhcmUodW5zaWdu ZWQgaW50IGNwdSkKICAgICAgICAgIChmZWF0X2wzID0geHphbGxvYyhzdHJ1Y3QgZmVhdF9ub2Rl KSkgPT0gTlVMTCApCiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogCisgICAgaWYgKCBmZWF0X2wy ID09IE5VTEwgJiYKKyAgICAgICAgIChmZWF0X2wyID0geHphbGxvYyhzdHJ1Y3QgZmVhdF9ub2Rl KSkgPT0gTlVMTCApCisgICAgeworICAgICAgICB4ZnJlZShmZWF0X2wzKTsKKyAgICAgICAgZmVh dF9sMyA9IE5VTEw7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKwogICAgIHJldHVy biAwOwogfQogCkBAIC0xMjc4LDYgKzE0ODgsMTggQEAgc3RhdGljIHZvaWQgY2F0X2NwdV9pbml0 KHZvaWQpCiAgICAgICAgIGZlYXRfdG1wLT5vcHMgPSBsM19jYXRfb3BzOwogICAgICAgICBmZWF0 X3RtcC0+b3BzLmluaXRfZmVhdHVyZShlYXgsIGVieCwgZWN4LCBlZHgsIGZlYXRfdG1wLCBpbmZv KTsKICAgICB9CisKKyAgICBjcHVpZF9jb3VudChQU1JfQ1BVSURfTEVWRUxfQ0FULCAwLCAmZWF4 LCAmZWJ4LCAmZWN4LCAmZWR4KTsKKyAgICBpZiAoIGVieCAmIFBTUl9SRVNPVVJDRV9UWVBFX0wy ICkKKyAgICB7CisgICAgICAgIGZlYXRfdG1wID0gZmVhdF9sMjsKKyAgICAgICAgZmVhdF9sMiA9 IE5VTEw7CisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBMMiBDQVQgYWNjb3JkaW5nIHRvIENQVUlE LiAqLworICAgICAgICBjcHVpZF9jb3VudChQU1JfQ1BVSURfTEVWRUxfQ0FULCAyLCAmZWF4LCAm ZWJ4LCAmZWN4LCAmZWR4KTsKKyAgICAgICAgZmVhdF90bXAtPm9wcyA9IGwyX2NhdF9vcHM7Cisg ICAgICAgIGZlYXRfdG1wLT5vcHMuaW5pdF9mZWF0dXJlKGVheCwgZWJ4LCBlY3gsIGVkeCwgZmVh dF90bXAsIGluZm8pOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgY2F0X2NwdV9maW5pKHVuc2ln bmVkIGludCBjcHUpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21zci1pbmRleC5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaAppbmRleCA5OGRiZmYxLi5hNDFlNjNh IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L21zci1pbmRleC5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvbXNyLWluZGV4LmgKQEAgLTM0Myw2ICszNDMsNyBAQAogI2RlZmluZSBN U1JfSUEzMl9QU1JfTDNfTUFTSyhuKQkoMHgwMDAwMGM5MCArIChuKSkKICNkZWZpbmUgTVNSX0lB MzJfUFNSX0wzX01BU0tfQ09ERShuKQkoMHgwMDAwMGM5MCArIChuKSAqIDIgKyAxKQogI2RlZmlu ZSBNU1JfSUEzMl9QU1JfTDNfTUFTS19EQVRBKG4pCSgweDAwMDAwYzkwICsgKG4pICogMikKKyNk ZWZpbmUgTVNSX0lBMzJfUFNSX0wyX01BU0sobikJCSgweDAwMDAwZDEwICsgKG4pKQogCiAvKiBJ bnRlbCBNb2RlbCA2ICovCiAjZGVmaW5lIE1TUl9QNl9QRVJGQ1RSKG4pCQkoMHgwMDAwMDBjMSAr IChuKSkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmggYi94ZW4vaW5jbHVk ZS9hc20teDg2L3Bzci5oCmluZGV4IDE3ZWU2ZjMuLjM3YWQxODUgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvcHNyLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaApAQCAt MjMsNiArMjMsNyBAQAogCiAvKiBSZXNvdXJjZSBUeXBlIEVudW1lcmF0aW9uICovCiAjZGVmaW5l IFBTUl9SRVNPVVJDRV9UWVBFX0wzICAgICAgICAgICAgMHgyCisjZGVmaW5lIFBTUl9SRVNPVVJD RV9UWVBFX0wyICAgICAgICAgICAgMHg0CiAKIC8qIEwzIE1vbml0b3JpbmcgRmVhdHVyZXMgKi8K ICNkZWZpbmUgUFNSX0NNVF9MM19PQ0NVUEFOQ1kgICAgICAgICAgIDB4MQpAQCAtNTAsNiArNTEs NyBAQCBlbnVtIGNibV90eXBlIHsKICAgICBQU1JfQ0JNX1RZUEVfTDMsCiAgICAgUFNSX0NCTV9U WVBFX0wzX0NPREUsCiAgICAgUFNSX0NCTV9UWVBFX0wzX0RBVEEsCisgICAgUFNSX0NCTV9UWVBF X0wyLAogfTsKIAogZXh0ZXJuIHN0cnVjdCBwc3JfY210ICpwc3JfY210OwotLSAKMi43LjQKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK