From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v11 07/23] x86: refactor psr: L3 CAT: implement get value flow. Date: Wed, 3 May 2017 16:44:07 +0800 Message-ID: <1493801063-38513-8-git-send-email-yi.y.sun@linux.intel.com> References: <1493801063-38513-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d5q2q-0000Yp-02 for xen-devel@lists.xenproject.org; Wed, 03 May 2017 08:54:00 +0000 In-Reply-To: <1493801063-38513-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: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, he.chen@linux.intel.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhlcmUgaXMgYW4gaW50ZXJmYWNlIGluIHVzZXIgc3BhY2UgdG8gc2hvdyBmZWF0dXJlIHZhbHVl IG9mCmRvbWFpbnMuCgpUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0IHZhbHVlIGZsb3cgaW4gaHlw ZXJ2aXNvci4KCkl0IGFsc28gY2hhbmdlcyBkb21jdGwgaW50ZXJmYWNlIHRvIG1ha2UgaXQgbW9y ZSBnZW5lcmFsLgoKV2l0aCB0aGlzIHBhdGNoLCAncHNyLWNhdC1zaG93JyBjYW4gd29yayBmb3Ig TDMgQ0FUIGJ1dCBub3QgZm9yCkwzIGNvZGUvZGF0YSB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbiBD RFAgcmVsYXRlZCBwYXRjaGVzLgoKU2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51 eC5pbnRlbC5jb20+Ci0tLQp2MTE6CiAgICAtIGRlY2xhcmUgYSAnc3dpdGNoKCknIHdpZGUgdmFy aWFibGUgJ3ZhbDMyJyBpbiBkb21jdGwuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CiAgICAtIHJlbW92ZSAnZ2V0X3ZhbCcgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMgcmVwbGFj ZWQgYnkgZ2VuZXJpYyBjb2Rlcy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAg IC0gZml4IGNvZGluZyBzdHlsZSBpc3N1ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkKICAgIC0gZG8gbm90ICdBU1NFUlQnIGRvbWFpbiBwb2ludGVyLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UuCnYxMDoKICAgIC0g dXNlIGFuIGludGVybWVkaWF0ZSB2YXJpYWJsZSB0byBnZXQgdmFsdWUgYW5kIGF2b2lkIGNhc3Qg aW4gZG9tY3RsLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUg J3R5cGUnIGluICdnZXRfdmFsJyBwYXJhbWV0ZXJzIGFuZCB3aWxsIGFkZCBpdCBiYWNrIHdoZW4K ICAgICAgaW1wbGVtZW50aW5nIENEUC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK ICAgIC0gcmVtb3ZlIHVubmVjZXNzYXJ5IHZhcmlhYmxlIGFuZCByZXR1cm4gZXJyb3IgYWJvdXQg J2luZm8nIGluCiAgICAgICdwc3JfZ2V0X2ZlYXQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKQogICAgLSB1c2UgJ0FTU0VSVCcgdG8gY2hlY2sgaW5wdXQgcGFyYW1ldGVyIGluICdw c3JfZ2V0X3ZhbCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5n ZXMgYWJvdXQgJ2ZlYXRfcHJvcHMnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2 OToKICAgIC0gYWRkIGNvbW1pdCBtZXNzYWdlIHRvIGV4cGxhaW4gdGhlcmUgaXMgYW4gdXNlciBz cGFjZSBpbnRlcmZhY2UuCiAgICAtIHJlbmFtZSAnbDNfY2F0X2dldF92YWwnIHRvICdjYXRfZ2V0 X3ZhbCcgdG8gY292ZXIgYWxsIEwzL0wyIENBVCBmZWF0dXJlcy4KICAgICAgKHN1Z2dlc3RlZCBi eSBSb2dlciBQYXUpCiAgICAtIHJlcGxhY2UgZmVhdHVyZSBsaXN0IGhhbmRsaW5nIHRvIGZlYXR1 cmUgYXJyYXkgaGFuZGxpbmcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1KQogICAgLSBj aGFuZ2UgcGFyYW1ldGVyIG9mICdwc3JfZ2V0Jy4gVXNlICdwc3JfY29zX2lkcycgZGlyZWN0bHkg dG8gcmVwbGFjZQogICAgICBkb21haW4uIEFsc28gZGVjbGFyZSBpdCB0byAnY29uc3QnLgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2UgY29kZSBmbG93IHRvIHJl bW92ZSAncHNyX2dldCcgYnV0IGFkZCAncHNyX2dldF9mZWF0JyB0byBtYWtlIGNvZGVzCiAgICAg IG1vcmUgcmVhc29uYWJsZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0g bW9kaWZ5IHBhdGNoIHRpdGxlIHRvIGluZGljYXRlICdMMyBDQVQnLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb3ZlIGNvcyBjaGVjayBpbnRvIGNvbW1vbiBmdW5jdGlv biBiZWNhdXNlIHRoaXMgY2hlY2sgaXMgcmVxdWlyZWQgYnkgYWxsCiAgICAgIGZlYXR1cmVzLgog ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBmaXggY29kaW5nIHN0eWxlIGlz c3VlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2VzIGFib3V0 ICd1aW50NjRfdCcgdG8gJ3VpbnQzMl90Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkKdjc6CiAgICAtIHJlbmFtZSAnX19wc3JfZ2V0JyB0byAncHNyX2dldCcuCiAgICAgIChzdWdn ZXN0ZWQgYnkgV2VpIExpdSkKdjY6CiAgICAtIG1vZGlmeSBjb21taXQgbWVzc2FnZSB0byBtYWtl IGl0IGNsZWFyZXIuCiAgICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKQog ICAgLSByZW1vdmUgb25lIGV4dHJhIHNwYWNlIGluIGNvZGUuCiAgICAgIChzdWdnZXN0ZWQgYnkg S29ucmFkIFJ6ZXN6dXRlayBXaWxrKQogICAgLSByZW1vdmUgdW5uZWNlc3NhcnkgY29tbWVudC4K ICAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspCiAgICAtIHdyaXRlIGEg aGVscGVyIGZ1bmN0aW9uIHRvIG1vdmUgZ2V0IGluZm8gYW5kIGdldCB2YWwgZnVuY3Rpb25zIGlu dG8KICAgICAgaXQuIEJlY2F1c2UgbW9zdCBjb2RlcyBvZiAnZ2V0X2luZm8nIGFuZCAnZ2V0X3Zh bCcgYXJlIHNhbWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKQp2 NToKICAgIC0gcmVuYW1lICdkYXRbXScgdG8gJ2RhdGFbXScKICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKICAgIC0gbW9kaWZ5IHZhcmlhYmxlcyBuYW1lcyB0byBtYWtlIHRoZW0gYmV0 dGVyLCBlLmcuICdmZWF0X3RtcCcgdG8gJ2ZlYXQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKQogICAgLSBjaGVjayBpZiBmZWF0dXJlIHR5cGUgbWF0Y2ggaW4gY2FsbGVyIG9mIGZl YXR1cmUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CnY0OgogICAgLSBjcmVhdGUgdGhpcyBwYXRjaCB0byBtYWtlIGNvZGVzIGVhc2llciB0byB1bmRl cnN0YW5kLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQotLS0KIHhlbi9hcmNoL3g4 Ni9kb21jdGwuYyAgICAgfCAyMCArKysrKysrKystLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMg ICAgICAgIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmggfCAgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQs IDYzIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwppbmRleCAxMjIwMjI0Li41YjYy YzVjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2 L2RvbWN0bC5jCkBAIC0xNDA4LDYgKzE0MDgsOCBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAg IGNhc2UgWEVOX0RPTUNUTF9wc3JfY2F0X29wOgogICAgICAgICBzd2l0Y2ggKCBkb21jdGwtPnUu cHNyX2NhdF9vcC5jbWQgKQogICAgICAgICB7CisgICAgICAgICAgICB1aW50MzJfdCB2YWwzMjsK KwogICAgICAgICBjYXNlIFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDNfQ0JNOgogICAgICAg ICAgICAgcmV0ID0gcHNyX3NldF9sM19jYm0oZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnBzcl9jYXRfb3Au ZGF0YSwKQEAgLTE0MjcsMjMgKzE0MjksMjMgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAg ICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9M M19DQk06Ci0gICAgICAgICAgICByZXQgPSBwc3JfZ2V0X2wzX2NibShkLCBkb21jdGwtPnUucHNy X2NhdF9vcC50YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZG9tY3Rs LT51LnBzcl9jYXRfb3AuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBT Ul9DQk1fVFlQRV9MMyk7CisgICAgICAgICAgICByZXQgPSBwc3JfZ2V0X3ZhbChkLCBkb21jdGwt PnUucHNyX2NhdF9vcC50YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmFs MzIsIFBTUl9DQk1fVFlQRV9MMyk7CisgICAgICAgICAgICBkb21jdGwtPnUucHNyX2NhdF9vcC5k YXRhID0gdmFsMzI7CiAgICAgICAgICAgICBjb3B5YmFjayA9IDE7CiAgICAgICAgICAgICBicmVh azsKIAogICAgICAgICBjYXNlIFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDNfQ09ERToKLSAg ICAgICAgICAgIHJldCA9IHBzcl9nZXRfbDNfY2JtKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRh cmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkb21jdGwtPnUucHNyX2Nh dF9vcC5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9UWVBF X0wzX0NPREUpOworICAgICAgICAgICAgcmV0ID0gcHNyX2dldF92YWwoZCwgZG9tY3RsLT51LnBz cl9jYXRfb3AudGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZhbDMyLCBQ U1JfQ0JNX1RZUEVfTDNfQ09ERSk7CisgICAgICAgICAgICBkb21jdGwtPnUucHNyX2NhdF9vcC5k YXRhID0gdmFsMzI7CiAgICAgICAgICAgICBjb3B5YmFjayA9IDE7CiAgICAgICAgICAgICBicmVh azsKIAogICAgICAgICBjYXNlIFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDNfREFUQToKLSAg ICAgICAgICAgIHJldCA9IHBzcl9nZXRfbDNfY2JtKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRh cmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkb21jdGwtPnUucHNyX2Nh dF9vcC5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9UWVBF X0wzX0RBVEEpOworICAgICAgICAgICAgcmV0ID0gcHNyX2dldF92YWwoZCwgZG9tY3RsLT51LnBz cl9jYXRfb3AudGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZhbDMyLCBQ U1JfQ0JNX1RZUEVfTDNfREFUQSk7CisgICAgICAgICAgICBkb21jdGwtPnUucHNyX2NhdF9vcC5k YXRhID0gdmFsMzI7CiAgICAgICAgICAgICBjb3B5YmFjayA9IDE7CiAgICAgICAgICAgICBicmVh azsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5j CmluZGV4IDJlNjU5NWQuLjFiNzgxZTEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYwor KysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAgLTQ3NiwyMyArNDc2LDM0IEBAIHN0YXRpYyBzdHJ1 Y3QgcHNyX3NvY2tldF9pbmZvICpnZXRfc29ja2V0X2luZm8odW5zaWduZWQgaW50IHNvY2tldCkK ICAgICByZXR1cm4gc29ja2V0X2luZm8gKyBzb2NrZXQ7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgZmVh dF9ub2RlICpwc3JfZ2V0X2ZlYXRfYW5kX3R5cGUodW5zaWduZWQgaW50IHNvY2tldCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjYm1fdHlwZSB0 eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVt IHBzcl9mZWF0X3R5cGUgKmZlYXRfdHlwZSkKK3sKKyAgICBjb25zdCBzdHJ1Y3QgcHNyX3NvY2tl dF9pbmZvICppbmZvID0gZ2V0X3NvY2tldF9pbmZvKHNvY2tldCk7CisKKyAgICBpZiAoIElTX0VS UihpbmZvKSApCisgICAgICAgIHJldHVybiBFUlJfUFRSKFBUUl9FUlIoaW5mbykpOworCisgICAg KmZlYXRfdHlwZSA9IHBzcl9jYm1fdHlwZV90b19mZWF0X3R5cGUodHlwZSk7CisgICAgaWYgKCAq ZmVhdF90eXBlID49IEFSUkFZX1NJWkUoaW5mby0+ZmVhdHVyZXMpICkKKyAgICAgICAgcmV0dXJu IE5VTEw7CisKKyAgICByZXR1cm4gaW5mby0+ZmVhdHVyZXNbKmZlYXRfdHlwZV07Cit9CisKIGlu dCBwc3JfZ2V0X2luZm8odW5zaWduZWQgaW50IHNvY2tldCwgZW51bSBjYm1fdHlwZSB0eXBlLAog ICAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRhW10sIHVuc2lnbmVkIGludCBhcnJheV9sZW4p CiB7Ci0gICAgY29uc3Qgc3RydWN0IHBzcl9zb2NrZXRfaW5mbyAqaW5mbyA9IGdldF9zb2NrZXRf aW5mbyhzb2NrZXQpOwogICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQ7CiAgICAgZW51 bSBwc3JfZmVhdF90eXBlIGZlYXRfdHlwZTsKIAogICAgIEFTU0VSVChkYXRhKTsKIAotICAgIGlm ICggSVNfRVJSKGluZm8pICkKLSAgICAgICAgcmV0dXJuIFBUUl9FUlIoaW5mbyk7Ci0KLSAgICBm ZWF0X3R5cGUgPSBwc3JfY2JtX3R5cGVfdG9fZmVhdF90eXBlKHR5cGUpOwotICAgIGlmICggZmVh dF90eXBlID49IEFSUkFZX1NJWkUoaW5mby0+ZmVhdHVyZXMpICkKLSAgICAgICAgcmV0dXJuIC1F Tk9FTlQ7CisgICAgZmVhdCA9IHBzcl9nZXRfZmVhdF9hbmRfdHlwZShzb2NrZXQsIHR5cGUsICZm ZWF0X3R5cGUpOworICAgIGlmICggSVNfRVJSKGZlYXQpICkKKyAgICAgICAgcmV0dXJuIFBUUl9F UlIoZmVhdCk7CiAKLSAgICBmZWF0ID0gaW5mby0+ZmVhdHVyZXNbZmVhdF90eXBlXTsKICAgICBp ZiAoICFmZWF0IHx8ICFmZWF0X3Byb3BzW2ZlYXRfdHlwZV0gKQogICAgICAgICByZXR1cm4gLUVO T0VOVDsKIApAQCAtNTAyLDkgKzUxMywzOCBAQCBpbnQgcHNyX2dldF9pbmZvKHVuc2lnbmVkIGlu dCBzb2NrZXQsIGVudW0gY2JtX3R5cGUgdHlwZSwKICAgICByZXR1cm4gLUVJTlZBTDsKIH0KIAot aW50IHBzcl9nZXRfbDNfY2JtKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQs Ci0gICAgICAgICAgICAgICAgICAgdWludDY0X3QgKmNibSwgZW51bSBjYm1fdHlwZSB0eXBlKQor aW50IHBzcl9nZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCisg ICAgICAgICAgICAgICAgdWludDMyX3QgKnZhbCwgZW51bSBjYm1fdHlwZSB0eXBlKQogeworICAg IGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQ7CisgICAgZW51bSBwc3JfZmVhdF90eXBlIGZl YXRfdHlwZTsKKyAgICB1bnNpZ25lZCBpbnQgY29zLCBpOworCisgICAgQVNTRVJUKHZhbCk7CisK KyAgICBmZWF0ID0gcHNyX2dldF9mZWF0X2FuZF90eXBlKHNvY2tldCwgdHlwZSwgJmZlYXRfdHlw ZSk7CisgICAgaWYgKCBJU19FUlIoZmVhdCkgKQorICAgICAgICByZXR1cm4gUFRSX0VSUihmZWF0 KTsKKworICAgIGlmICggIWZlYXQgfHwgIWZlYXRfcHJvcHNbZmVhdF90eXBlXSApCisgICAgICAg IHJldHVybiAtRU5PRU5UOworCisgICAgY29zID0gZC0+YXJjaC5wc3JfY29zX2lkc1tzb2NrZXRd OworICAgIC8qCisgICAgICogSWYgaW5wdXQgY29zIGV4Y2VlZHMgY3VycmVudCBmZWF0dXJlJ3Mg Y29zX21heCwgd2Ugc2hvdWxkIHJldHVybiBpdHMKKyAgICAgKiBkZWZhdWx0IHZhbHVlIHdoaWNo IGlzIHN0b3JlZCBpbiBjb3MgMC4gVGhpcyBjYXNlIG9ubHkgaGFwcGVucworICAgICAqIHdoZW4g bW9yZSB0aGFuIHR3byBmZWF0dXJlcyBlbmFibGVkIGNvbmN1cnJlbnRseSBhbmQgYXQgbGVhc3Qg b25lCisgICAgICogZmVhdHVyZXMncyBjb3NfbWF4IGlzIGJpZ2dlciB0aGFuIG90aGVycy4gV2hl biBhIGRvbWFpbidzIHdvcmtpbmcgY29zCisgICAgICogaWQgaXMgYmlnZ2VyIHRoYW4gc29tZSBm ZWF0dXJlcycgY29zX21heCwgSFcgYXV0b21hdGljYWxseSB3b3JrcyBhcworICAgICAqIGRlZmF1 bHQgdmFsdWUgZm9yIHRob3NlIGZlYXR1cmVzIHdoaWNoIGNvc19tYXggaXMgc21hbGxlci4KKyAg ICAgKi8KKyAgICBpZiAoIGNvcyA+IGZlYXQtPmNvc19tYXggKQorICAgICAgICBjb3MgPSAwOwor CisgICAgZm9yICggaSA9IDA7IGkgPCBmZWF0X3Byb3BzW2ZlYXRfdHlwZV0tPmNvc19udW07IGkr KyApCisgICAgICAgIGlmICggdHlwZSA9PSBmZWF0X3Byb3BzW2ZlYXRfdHlwZV0tPnR5cGVbaV0g KQorICAgICAgICAgICAgKnZhbCA9IGZlYXQtPmNvc19yZWdfdmFsW2NvcyAqIGZlYXRfcHJvcHNb ZmVhdF90eXBlXS0+Y29zX251bSArIGldOworCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3Bzci5o CmluZGV4IGFmM2E0NjUuLjdjNmQzOGEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv cHNyLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaApAQCAtNzEsOCArNzEsOCBAQCB2 b2lkIHBzcl9jdHh0X3N3aXRjaF90byhzdHJ1Y3QgZG9tYWluICpkKTsKIAogaW50IHBzcl9nZXRf aW5mbyh1bnNpZ25lZCBpbnQgc29ja2V0LCBlbnVtIGNibV90eXBlIHR5cGUsCiAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IGRhdGFbXSwgdW5zaWduZWQgaW50IGFycmF5X2xlbik7Ci1pbnQgcHNy X2dldF9sM19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKLSAgICAg ICAgICAgICAgICAgICB1aW50NjRfdCAqY2JtLCBlbnVtIGNibV90eXBlIHR5cGUpOworaW50IHBz cl9nZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCisgICAgICAg ICAgICAgICAgdWludDMyX3QgKnZhbCwgZW51bSBjYm1fdHlwZSB0eXBlKTsKIGludCBwc3Jfc2V0 X2wzX2NibShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc29ja2V0LAogICAgICAgICAg ICAgICAgICAgIHVpbnQ2NF90IGNibSwgZW51bSBjYm1fdHlwZSB0eXBlKTsKIAotLSAKMS45LjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK