From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v1 03/12] tmem: Wrap tmem dedup code with CONFIG_TMEM_DEDUP Date: Wed, 28 Sep 2016 05:42:17 -0400 Message-ID: <1475055746-22401-4-git-send-email-konrad.wilk@oracle.com> References: <1475055746-22401-1-git-send-email-konrad.wilk@oracle.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 1bpBO0-0008Vk-AU for xen-devel@lists.xenproject.org; Wed, 28 Sep 2016 09:42:44 +0000 In-Reply-To: <1475055746-22401-1-git-send-email-konrad.wilk@oracle.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, konrad@kernel.org Cc: Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org VGhpcyBjb25maWcgaXMgbm90IGRlZmluZWQgYW55d2hlcmUgYnV0IGl0IG1ha2VzIGl0IHdheQpl YXNpZXIgdG8gZmlndXJlIG91dCB3aGF0IGNvZGUgdG8gZGVhbCB3aXRoLgoKU2lnbmVkLW9mZi1i eTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgotLS0KdjE6 IEZpcnN0IHN1Ym1pc3Npb24uCi0tLQogeGVuL2NvbW1vbi90bWVtLmMgICAgICAgICAgfCA1NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiB4ZW4vY29tbW9u L3RtZW1fY29udHJvbC5jICB8ICAyICsrCiB4ZW4vY29tbW9uL3RtZW1feGVuLmMgICAgICB8ICAy ICsrCiB4ZW4vaW5jbHVkZS94ZW4vdG1lbV94ZW4uaCB8ICA0ICsrKysKIDQgZmlsZXMgY2hhbmdl ZCwgNjAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL3RtZW0uYyBiL3hlbi9jb21tb24vdG1lbS5jCmluZGV4IGVmYWFmYzQuLjgzMjcyMTggMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vdG1lbS5jCisrKyBiL3hlbi9jb21tb24vdG1lbS5jCkBAIC03 MSwxMCArNzEsMTQgQEAgc3RydWN0IHRtZW1fcGFnZV9kZXNjcmlwdG9yIHsKICAgICBwYWdlc2l6 ZV90IHNpemU7IC8qIDAgPT0gUEFHRV9TSVpFIChwZnApLCAtMSA9PSBkYXRhIGludmFsaWQsCiAg ICAgICAgICAgICAgICAgICAgIGVsc2UgY29tcHJlc3NlZCBkYXRhIChjZGF0YSkuICovCiAgICAg dWludDMyX3QgaW5kZXg7CisjaWZkZWYgQ09ORklHX1RNRU1fREVEVVAKICAgICAvKiBNdXN0IGhv bGQgcGNkX3RyZWVfcndsb2Nrc1tmaXJzdGJ5dGVdIHRvIHVzZSBwY2QgcG9pbnRlci9zaWJsaW5n cy4gKi8KICAgICB1aW50MTZfdCBmaXJzdGJ5dGU7IC8qIE5PTl9TSEFSRUFCTEUtPnBmcCAgb3Ro ZXJ3aXNlLT5wY2QuICovCisjZW5kaWYKICAgICBib29sX3QgZXZpY3Rpb25fYXR0ZW1wdGVkOyAg LyogQ0hBTkdFIFRPIGxpZmV0aW1lcz8gKHNldHRhYmxlKS4gKi8KKyNpZmRlZiBDT05GSUdfVE1F TV9ERURVUAogICAgIHN0cnVjdCBsaXN0X2hlYWQgcGNkX3NpYmxpbmdzOworI2VuZGlmCiAgICAg dW5pb24gewogICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZnA7ICAvKiBQYWdlIGZyYW1lIHBv aW50ZXIuICovCiAgICAgICAgIGNoYXIgKmNkYXRhOyAvKiBDb21wcmVzc2VkIGRhdGEuICovCkBA IC05NCwxNSArOTgsMjAgQEAgc3RydWN0IHRtZW1fcGFnZV9jb250ZW50X2Rlc2NyaXB0b3Igewog ICAgICAgICBjaGFyICpjZGF0YTsgLyogSWYgY29tcHJlc3Npb25fZW5hYmxlZC4gKi8KICAgICAg ICAgY2hhciAqdHplOyAvKiBJZiAhY29tcHJlc3Npb25fZW5hYmxlZCwgdHJhaWxpbmcgemVyb2Vz IGVsaW1pbmF0ZWQuICovCiAgICAgfTsKKyNpZmRlZiBDT05GSUdfVE1FTV9ERURVUAogICAgIHN0 cnVjdCBsaXN0X2hlYWQgcGdwX2xpc3Q7CiAgICAgc3RydWN0IHJiX25vZGUgcGNkX3JiX3RyZWVf bm9kZTsKICAgICB1aW50MzJfdCBwZ3BfcmVmX2NvdW50OworI2VuZGlmCiAgICAgcGFnZXNpemVf dCBzaXplOyAvKiBJZiBjb21wcmVzc2lvbl9lbmFibGVkIC0+IDA8c2l6ZTxQQUdFX1NJWkUgKCpj ZGF0YSkKICAgICAgICAgICAgICAgICAgICAgICogZWxzZSBpZiB0emUsIDA8PXNpemU8UEFHRV9T SVpFLCByb3VuZGVkIHVwIHRvIG11bHQgb2YgOAogICAgICAgICAgICAgICAgICAgICAgKiBlbHNl IFBBR0VfU0laRSAtPiAqcGZwLiAqLwogfTsKKworI2lmZGVmIENPTkZJR19UTUVNX0RFRFVQCiBz dHJ1Y3QgcmJfcm9vdCBwY2RfdHJlZV9yb290c1syNTZdOyAvKiBDaG9vc2UgYmFzZWQgb24gZmly c3QgYnl0ZSBvZiBwYWdlLiAqLwogcndsb2NrX3QgcGNkX3RyZWVfcndsb2Nrc1syNTZdOyAvKiBQ b29yIG1hbidzIGNvbmN1cnJlbmN5IGZvciBub3cuICovCisjZW5kaWYKIAogc3RhdGljIGludCB0 bWVtX2luaXRpYWxpemVkID0gMDsKIApAQCAtMjYyLDYgKzI3MSw3IEBAIHN0YXRpYyB2b2lkIHRt ZW1fcGVyc2lzdGVudF9wb29sX3BhZ2VfcHV0KHZvaWQgKnBhZ2VfdmEpCiAgKi8KICNkZWZpbmUg Tk9UX1NIQVJFQUJMRSAoKHVpbnQxNl90KS0xVUwpCiAKKyNpZmRlZiBDT05GSUdfVE1FTV9ERURV UAogc3RhdGljIGludCBwY2RfY29weV90b19jbGllbnQoeGVuX3Bmbl90IGNtZm4sIHN0cnVjdCB0 bWVtX3BhZ2VfZGVzY3JpcHRvciAqcGdwKQogewogICAgIHVpbnQ4X3QgZmlyc3RieXRlID0gcGdw LT5maXJzdGJ5dGU7CkBAIC00ODUsNiArNDk1LDcgQEAgdW5sb2NrOgogICAgIHdyaXRlX3VubG9j aygmcGNkX3RyZWVfcndsb2Nrc1tmaXJzdGJ5dGVdKTsKICAgICByZXR1cm4gcmV0OwogfQorI2Vu ZGlmCiAKIC8qKioqKioqKioqKiogUEFHRSBERVNDUklQVE9SIE1BTklQVUxBVElPTiBST1VUSU5F UyAqKioqKioqKioqKioqKioqKioqLwogCkBAIC01MDMsMTIgKzUxNCwxNCBAQCBzdGF0aWMgc3Ry dWN0IHRtZW1fcGFnZV9kZXNjcmlwdG9yICpwZ3BfYWxsb2Moc3RydWN0IHRtZW1fb2JqZWN0X3Jv b3QgKm9iaikKICAgICBJTklUX0xJU1RfSEVBRCgmcGdwLT5nbG9iYWxfZXBoX3BhZ2VzKTsKICAg ICBJTklUX0xJU1RfSEVBRCgmcGdwLT51cy5jbGllbnRfZXBoX3BhZ2VzKTsKICAgICBwZ3AtPnBm cCA9IE5VTEw7CisjaWZkZWYgQ09ORklHX1RNRU1fREVEVVAKICAgICBpZiAoIHRtZW1fZGVkdXBf ZW5hYmxlZCgpICkKICAgICB7CiAgICAgICAgIHBncC0+Zmlyc3RieXRlID0gTk9UX1NIQVJFQUJM RTsKICAgICAgICAgcGdwLT5ldmljdGlvbl9hdHRlbXB0ZWQgPSAwOwogICAgICAgICBJTklUX0xJ U1RfSEVBRCgmcGdwLT5wY2Rfc2libGluZ3MpOwogICAgIH0KKyNlbmRpZgogICAgIHBncC0+c2l6 ZSA9IC0xOwogICAgIHBncC0+aW5kZXggPSAtMTsKICAgICBwZ3AtPnRpbWVzdGFtcCA9IGdldF9j eWNsZXMoKTsKQEAgLTUzMyw5ICs1NDYsMTIgQEAgc3RhdGljIHZvaWQgcGdwX2ZyZWVfZGF0YShz dHJ1Y3QgdG1lbV9wYWdlX2Rlc2NyaXB0b3IgKnBncCwgc3RydWN0IHRtZW1fcG9vbCAqcG8KIAog ICAgIGlmICggcGdwLT5wZnAgPT0gTlVMTCApCiAgICAgICAgIHJldHVybjsKKyNpZmRlZiBDT05G SUdfVE1FTV9ERURVUAogICAgIGlmICggdG1lbV9kZWR1cF9lbmFibGVkKCkgJiYgcGdwLT5maXJz dGJ5dGUgIT0gTk9UX1NIQVJFQUJMRSApCiAgICAgICAgIHBjZF9kaXNhc3NvY2lhdGUocGdwLHBv b2wsMCk7IC8qIHBncC0+c2l6ZSBsb3N0LiAqLwotICAgIGVsc2UgaWYgKCBwZ3Bfc2l6ZSApCisg ICAgZWxzZQorI2VuZGlmCisgICAgaWYgKCBwZ3Bfc2l6ZSApCiAgICAgICAgIHRtZW1fZnJlZShw Z3AtPmNkYXRhLCBwb29sKTsKICAgICBlbHNlCiAgICAgICAgIHRtZW1fZnJlZV9wYWdlKHBncC0+ dXMub2JqLT5wb29sLHBncC0+cGZwKTsKQEAgLTEwODUsNiArMTEwMSw4IEBAIHN0YXRpYyBzdHJ1 Y3QgY2xpZW50ICpjbGllbnRfY3JlYXRlKGRvbWlkX3QgY2xpX2lkKQogCiAgICAgY2xpZW50LT5j bGlfaWQgPSBjbGlfaWQ7CiAgICAgY2xpZW50LT5jb21wcmVzcyA9IHRtZW1fY29tcHJlc3Npb25f ZW5hYmxlZCgpOworI2lmZGVmIENPTkZJR19UTUVNX0RFRFVQCisjZW5kaWYKICAgICBjbGllbnQt PnNoYXJlZF9hdXRoX3JlcXVpcmVkID0gdG1lbV9zaGFyZWRfYXV0aCgpOwogICAgIGZvciAoIGkg PSAwOyBpIDwgTUFYX0dMT0JBTF9TSEFSRURfUE9PTFM7IGkrKykKICAgICAgICAgY2xpZW50LT5z aGFyZWRfYXV0aF91dWlkW2ldWzBdID0KQEAgLTExNDEsMTMgKzExNTksMTYgQEAgc3RhdGljIGJv b2xfdCB0bWVtX3RyeV90b19ldmljdF9wZ3Aoc3RydWN0IHRtZW1fcGFnZV9kZXNjcmlwdG9yICpw Z3AsIGJvb2xfdCAqaG8KIHsKICAgICBzdHJ1Y3QgdG1lbV9vYmplY3Rfcm9vdCAqb2JqID0gcGdw LT51cy5vYmo7CiAgICAgc3RydWN0IHRtZW1fcG9vbCAqcG9vbCA9IG9iai0+cG9vbDsKKyNpZmRl ZiBDT05GSUdfVE1FTV9ERURVUAogICAgIHN0cnVjdCBjbGllbnQgKmNsaWVudCA9IHBvb2wtPmNs aWVudDsKICAgICB1aW50MTZfdCBmaXJzdGJ5dGUgPSBwZ3AtPmZpcnN0Ynl0ZTsKKyNlbmRpZgog CiAgICAgaWYgKCBwb29sLT5pc19keWluZyApCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICgg c3Bpbl90cnlsb2NrKCZvYmotPm9ial9zcGlubG9jaykgKQogICAgIHsKKyNpZmRlZiBDT05GSUdf VE1FTV9ERURVUAogICAgICAgICBpZiAoIHRtZW1fZGVkdXBfZW5hYmxlZCgpICkKICAgICAgICAg ewogICAgICAgICAgICAgZmlyc3RieXRlID0gcGdwLT5maXJzdGJ5dGU7CkBAIC0xMTY2LDYgKzEx ODcsNyBAQCBzdGF0aWMgYm9vbF90IHRtZW1fdHJ5X3RvX2V2aWN0X3BncChzdHJ1Y3QgdG1lbV9w YWdlX2Rlc2NyaXB0b3IgKnBncCwgYm9vbF90ICpobwogICAgICAgICAgICAgICAgIGdvdG8gcGNk X3VubG9jazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmICgg b2JqLT5wZ3BfY291bnQgPiAxICkKICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICBpZiAo IHdyaXRlX3RyeWxvY2soJnBvb2wtPnBvb2xfcndsb2NrKSApCkBAIC0xMTczLDEwICsxMTk1LDEy IEBAIHN0YXRpYyBib29sX3QgdG1lbV90cnlfdG9fZXZpY3RfcGdwKHN0cnVjdCB0bWVtX3BhZ2Vf ZGVzY3JpcHRvciAqcGdwLCBib29sX3QgKmhvCiAgICAgICAgICAgICAqaG9sZF9wb29sX3J3bG9j ayA9IDE7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQorI2lmZGVmIENPTkZJR19U TUVNX0RFRFVQCiBwY2RfdW5sb2NrOgogICAgICAgICBpZiAoIHRtZW1fZGVkdXBfZW5hYmxlZCgp ICkKICAgICAgICAgICAgIHdyaXRlX3VubG9jaygmcGNkX3RyZWVfcndsb2Nrc1tmaXJzdGJ5dGVd KTsKIG9ial91bmxvY2s6CisjZW5kaWYKICAgICAgICAgc3Bpbl91bmxvY2soJm9iai0+b2JqX3Nw aW5sb2NrKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CkBAIC0xMjMyLDExICsxMjU2LDEzIEBAIGZv dW5kOgogICAgIEFTU0VSVF9TUElOTE9DSygmb2JqLT5vYmpfc3BpbmxvY2spOwogICAgIHBncF9k ZWwgPSBwZ3BfZGVsZXRlX2Zyb21fb2JqKG9iaiwgcGdwLT5pbmRleCk7CiAgICAgQVNTRVJUKHBn cF9kZWwgPT0gcGdwKTsKKyNpZmRlZiBDT05GSUdfVE1FTV9ERURVUAogICAgIGlmICggdG1lbV9k ZWR1cF9lbmFibGVkKCkgJiYgcGdwLT5maXJzdGJ5dGUgIT0gTk9UX1NIQVJFQUJMRSApCiAgICAg ewogICAgICAgICBBU1NFUlQocGdwLT5wY2QtPnBncF9yZWZfY291bnQgPT0gMSB8fCBwZ3AtPmV2 aWN0aW9uX2F0dGVtcHRlZCk7CiAgICAgICAgIHBjZF9kaXNhc3NvY2lhdGUocGdwLHBvb2wsMSk7 CiAgICAgfQorI2VuZGlmCiAKICAgICAvKiBwZ3AgYWxyZWFkeSBkZWxpc3QsIHNvIGNhbGwgcGdw X2ZyZWUgZGlyZWN0bHkuICovCiAgICAgcGdwX2ZyZWUocGdwKTsKQEAgLTEzMDMsOSArMTMyOSwx MSBAQCBzdGF0aWMgaW50IGRvX3RtZW1fcHV0X2NvbXByZXNzKHN0cnVjdCB0bWVtX3BhZ2VfZGVz Y3JpcHRvciAqcGdwLCB4ZW5fcGZuX3QgY21mbgogICAgIGVsc2UgaWYgKCAoc2l6ZSA9PSAwKSB8 fCAoc2l6ZSA+PSB0bWVtX21lbXBvb2xfbWF4YWxsb2MpICkgewogICAgICAgICByZXQgPSAwOwog ICAgICAgICBnb3RvIG91dDsKKyNpZmRlZiBDT05GSUdfVE1FTV9ERURVUAogICAgIH0gZWxzZSBp ZiAoIHRtZW1fZGVkdXBfZW5hYmxlZCgpICYmICFpc19wZXJzaXN0ZW50KHBncC0+dXMub2JqLT5w b29sKSApIHsKICAgICAgICAgaWYgKCAocmV0ID0gcGNkX2Fzc29jaWF0ZShwZ3AsZHN0LHNpemUp KSA9PSAtRU5PTUVNICkKICAgICAgICAgICAgIGdvdG8gb3V0OworI2VuZGlmCiAgICAgfSBlbHNl IGlmICggKHAgPSB0bWVtX21hbGxvYyhzaXplLHBncC0+dXMub2JqLT5wb29sKSkgPT0gTlVMTCAp IHsKICAgICAgICAgcmV0ID0gLUVOT01FTTsKICAgICAgICAgZ290byBvdXQ7CkBAIC0xMzY1LDEx ICsxMzkzLDEzIEBAIGNvcHlfdW5jb21wcmVzc2VkOgogICAgIHJldCA9IHRtZW1fY29weV9mcm9t X2NsaWVudChwZ3AtPnBmcCwgY21mbiwgdG1lbV9jbGlfYnVmX251bGwpOwogICAgIGlmICggcmV0 IDwgMCApCiAgICAgICAgIGdvdG8gYmFkX2NvcHk7CisjaWZkZWYgQ09ORklHX1BBR0VfREVEVVAK ICAgICBpZiAoIHRtZW1fZGVkdXBfZW5hYmxlZCgpICYmICFpc19wZXJzaXN0ZW50KHBvb2wpICkK ICAgICB7CiAgICAgICAgIGlmICggcGNkX2Fzc29jaWF0ZShwZ3AsTlVMTCwwKSA9PSAtRU5PTUVN ICkKICAgICAgICAgICAgIGdvdG8gZmFpbGVkX2R1cDsKICAgICB9CisjZW5kaWYKIAogZG9uZToK ICAgICAvKiBTdWNjZXNzZnVsbHkgcmVwbGFjZWQgZGF0YSwgY2xlYW4gdXAgYW5kIHJldHVybiBz dWNjZXNzLiAqLwpAQCAtMTUwNiw2ICsxNTM2LDcgQEAgY29weV91bmNvbXByZXNzZWQ6CiAgICAg aWYgKCByZXQgPCAwICkKICAgICAgICAgZ290byBiYWRfY29weTsKIAorI2lmZGVmIENPTkZJR19U TUVNX0RFRFVQCiAgICAgaWYgKCB0bWVtX2RlZHVwX2VuYWJsZWQoKSAmJiAhaXNfcGVyc2lzdGVu dChwb29sKSApCiAgICAgewogICAgICAgICBpZiAoIHBjZF9hc3NvY2lhdGUocGdwLCBOVUxMLCAw KSA9PSAtRU5PTUVNICkKQEAgLTE1MTQsNiArMTU0NSw3IEBAIGNvcHlfdW5jb21wcmVzc2VkOgog ICAgICAgICAgICAgZ290byBkZWxfcGdwX2Zyb21fb2JqOwogICAgICAgICB9CiAgICAgfQorI2Vu ZGlmCiAKIGluc2VydF9wYWdlOgogICAgIGlmICggIWlzX3BlcnNpc3RlbnQocG9vbCkgKQpAQCAt MTYwMSwxMCArMTYzMywxMyBAQCBzdGF0aWMgaW50IGRvX3RtZW1fZ2V0KHN0cnVjdCB0bWVtX3Bv b2wgKnBvb2wsCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBBU1NFUlQocGdwLT5zaXpl ICE9IC0xKTsKKyNpZmRlZiBDT05GSUdfVE1FTV9ERURVUAogICAgIGlmICggdG1lbV9kZWR1cF9l bmFibGVkKCkgJiYgIWlzX3BlcnNpc3RlbnQocG9vbCkgJiYKICAgICAgICAgICAgICAgcGdwLT5m aXJzdGJ5dGUgIT0gTk9UX1NIQVJFQUJMRSApCiAgICAgICAgIHJjID0gcGNkX2NvcHlfdG9fY2xp ZW50KGNtZm4sIHBncCk7Ci0gICAgZWxzZSBpZiAoIHBncC0+c2l6ZSAhPSAwICkKKyAgICBlbHNl CisjZW5kaWYKKyAgICBpZiAoIHBncC0+c2l6ZSAhPSAwICkKICAgICB7CiAgICAgICAgIHJjID0g dG1lbV9kZWNvbXByZXNzX3RvX2NsaWVudChjbWZuLCBwZ3AtPmNkYXRhLCBwZ3AtPnNpemUsIGNs aWJ1Zik7CiAgICAgfQpAQCAtMjM2MiwyOSArMjM5Nyw0MSBAQCB1bnNpZ25lZCBsb25nIHRtZW1f ZnJlZWFibGVfcGFnZXModm9pZCkKIC8qIENhbGxlZCBhdCBoeXBlcnZpc29yIHN0YXJ0dXAuICov CiBzdGF0aWMgaW50IF9faW5pdCBpbml0X3RtZW0odm9pZCkKIHsKLSAgICBpbnQgaTsKICAgICBp ZiAoICF0bWVtX2VuYWJsZWQoKSApCiAgICAgICAgIHJldHVybiAwOwogCisjaWZkZWYgQ09ORklH X1RNRU1fREVEVVAKICAgICBpZiAoIHRtZW1fZGVkdXBfZW5hYmxlZCgpICkKKyAgICB7CisgICAg ICAgIHVuc2lnbmVkIGludCBpOworCiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKyAp CiAgICAgICAgIHsKICAgICAgICAgICAgIHBjZF90cmVlX3Jvb3RzW2ldID0gUkJfUk9PVDsKICAg ICAgICAgICAgIHJ3bG9ja19pbml0KCZwY2RfdHJlZV9yd2xvY2tzW2ldKTsKICAgICAgICAgfQot CisgICAgfQorI2VuZGlmCiAgICAgaWYgKCAhdG1lbV9tZW1wb29sX2luaXQoKSApCiAgICAgICAg IHJldHVybiAwOwogCiAgICAgaWYgKCB0bWVtX2luaXQoKSApCiAgICAgewogICAgICAgICBwcmlu dGsoInRtZW06IGluaXRpYWxpemVkIGNvbXA9JWQgZGVkdXA9JWQgdHplPSVkXG4iLAotICAgICAg ICAgICAgdG1lbV9jb21wcmVzc2lvbl9lbmFibGVkKCksIHRtZW1fZGVkdXBfZW5hYmxlZCgpLCB0 bWVtX3R6ZV9lbmFibGVkKCkpOworICAgICAgICAgICAgICAgdG1lbV9jb21wcmVzc2lvbl9lbmFi bGVkKCksCisjaWZkZWYgQ09ORklHX1RNRU1fREVEVVAKKyAgICAgICAgICAgICAgIHRtZW1fZGVk dXBfZW5hYmxlZCgpLAorI2Vsc2UKKyAgICAgICAgICAgICAgIDAsCisjZW5kaWYKKyAgICAgICAg ICAgICAgIHRtZW1fdHplX2VuYWJsZWQoKSk7CisjaWZkZWYgQ09ORklHX1RNRU1fREVEVVAKICAg ICAgICAgaWYgKCB0bWVtX2RlZHVwX2VuYWJsZWQoKSYmdG1lbV9jb21wcmVzc2lvbl9lbmFibGVk KCkmJnRtZW1fdHplX2VuYWJsZWQoKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHRtZW1fdHpl X2Rpc2FibGUoKTsKICAgICAgICAgICAgIHByaW50aygidG1lbTogdHplIGFuZCBjb21wcmVzc2lv biBub3QgY29tcGF0aWJsZSwgZGlzYWJsaW5nIHR6ZVxuIik7CiAgICAgICAgIH0KKyNlbmRpZgog ICAgICAgICB0bWVtX2luaXRpYWxpemVkID0gMTsKICAgICB9CiAgICAgZWxzZQpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi90bWVtX2NvbnRyb2wuYyBiL3hlbi9jb21tb24vdG1lbV9jb250cm9sLmMK aW5kZXggY2EzNDg1Mi4uNTY1ZTUwYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi90bWVtX2NvbnRy b2wuYworKysgYi94ZW4vY29tbW9uL3RtZW1fY29udHJvbC5jCkBAIC0yNzQsNiArMjc0LDcgQEAg c3RhdGljIGludCBfX3RtZW1jX3NldF92YXIoc3RydWN0IGNsaWVudCAqY2xpZW50LCB1aW50MzJf dCBzdWJvcCwgdWludDMyX3QgYXJnMSkKICAgICAgICAgYXRvbWljX2FkZChjbGllbnQtPndlaWdo dCwmdG1lbV9nbG9iYWwuY2xpZW50X3dlaWdodF90b3RhbCk7CiAgICAgICAgIGJyZWFrOwogICAg IGNhc2UgWEVOX1NZU0NUTF9UTUVNX09QX1NFVF9DT01QUkVTUzoKKyNpZmRlZiBDT05GSUdfVE1F TV9ERURVUAogICAgICAgICBpZiAoIHRtZW1fZGVkdXBfZW5hYmxlZCgpICkKICAgICAgICAgewog ICAgICAgICAgICAgdG1lbV9jbGllbnRfd2FybigidG1lbTogY29tcHJlc3Npb24gJXMgZm9yIGFs bCAlc3MsIGNhbm5vdCBiZSBjaGFuZ2VkIHdoZW4gdG1lbV9kZWR1cCBpcyBlbmFibGVkXG4iLApA QCAtMjgxLDYgKzI4Miw3IEBAIHN0YXRpYyBpbnQgX190bWVtY19zZXRfdmFyKHN0cnVjdCBjbGll bnQgKmNsaWVudCwgdWludDMyX3Qgc3Vib3AsIHVpbnQzMl90IGFyZzEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdG1lbV9jbGllbnRfc3RyKTsKICAgICAgICAgICAgIHJldHVybiAtMTsK ICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGNsaWVudC0+Y29tcHJlc3MgPSBhcmcxID8gMSA6 IDA7CiAgICAgICAgIHRtZW1fY2xpZW50X2luZm8oInRtZW06IGNvbXByZXNzaW9uICVzIGZvciAl cz0lZFxuIiwKICAgICAgICAgICAgIGFyZzEgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiLHRtZW1f Y2xpX2lkX3N0cixjbGlfaWQpOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi90bWVtX3hlbi5jIGIv eGVuL2NvbW1vbi90bWVtX3hlbi5jCmluZGV4IDcxY2I3ZDUuLjlhMmJmZWQgMTAwNjQ0Ci0tLSBh L3hlbi9jb21tb24vdG1lbV94ZW4uYworKysgYi94ZW4vY29tbW9uL3RtZW1feGVuLmMKQEAgLTIw LDggKzIwLDEwIEBAIGJvb2xlYW5fcGFyYW0oInRtZW0iLCBvcHRfdG1lbSk7CiBib29sX3QgX19y ZWFkX21vc3RseSBvcHRfdG1lbV9jb21wcmVzcyA9IDA7CiBib29sZWFuX3BhcmFtKCJ0bWVtX2Nv bXByZXNzIiwgb3B0X3RtZW1fY29tcHJlc3MpOwogCisjaWZkZWYgQ09ORklHX1RNRU1fREVEVVAK IGJvb2xfdCBfX3JlYWRfbW9zdGx5IG9wdF90bWVtX2RlZHVwID0gMDsKIGJvb2xlYW5fcGFyYW0o InRtZW1fZGVkdXAiLCBvcHRfdG1lbV9kZWR1cCk7CisjZW5kaWYKIAogYm9vbF90IF9fcmVhZF9t b3N0bHkgb3B0X3RtZW1fdHplID0gMDsKIGJvb2xlYW5fcGFyYW0oInRtZW1fdHplIiwgb3B0X3Rt ZW1fdHplKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi90bWVtX3hlbi5oIGIveGVuL2lu Y2x1ZGUveGVuL3RtZW1feGVuLmgKaW5kZXggNTgyOTUxYS4uNTJmODdiMSAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUveGVuL3RtZW1feGVuLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3RtZW1feGVu LmgKQEAgLTQxLDExICs0MSwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2xfdCB0bWVtX2NvbXByZXNz aW9uX2VuYWJsZWQodm9pZCkKICAgICByZXR1cm4gb3B0X3RtZW1fY29tcHJlc3M7CiB9CiAKKyNp ZmRlZiBDT05GSUdfVE1FTV9ERURVUAogZXh0ZXJuIGJvb2xfdCBvcHRfdG1lbV9kZWR1cDsKIHN0 YXRpYyBpbmxpbmUgYm9vbF90IHRtZW1fZGVkdXBfZW5hYmxlZCh2b2lkKQogewogICAgIHJldHVy biBvcHRfdG1lbV9kZWR1cDsKIH0KKyNlbmRpZgogCiBleHRlcm4gYm9vbF90IG9wdF90bWVtX3R6 ZTsKIHN0YXRpYyBpbmxpbmUgYm9vbF90IHRtZW1fdHplX2VuYWJsZWQodm9pZCkKQEAgLTE5Miw2 ICsxOTQsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGllbnQgKnRtZW1fY2xpZW50X2Zyb21f Y2xpX2lkKGRvbWlkX3QgY2xpX2lkKQogICAgIHJldHVybiBjOwogfQogCisjaWZkZWYgQ09ORklH X1RNRU1fREVEVVAKIHN0YXRpYyBpbmxpbmUgdWludDhfdCB0bWVtX2dldF9maXJzdF9ieXRlKHN0 cnVjdCBwYWdlX2luZm8gKnBmcCkKIHsKICAgICBjb25zdCB1aW50OF90ICpwID0gX19tYXBfZG9t YWluX3BhZ2UocGZwKTsKQEAgLTI4OCw2ICsyOTEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdG1l bV90emVfY29weV9mcm9tX3BmcCh2b2lkICp0dmEsIHN0cnVjdCBwYWdlX2luZm8gKnBmcCwgcGFn ZQogCiAgICAgdW5tYXBfZG9tYWluX3BhZ2UocCk7CiB9CisjZW5kaWYKIAogLyogdGhlc2UgdHlw ZWRlZnMgYXJlIGluIHRoZSBwdWJsaWMvdG1lbS5oIGludGVyZmFjZQogdHlwZWRlZiBYRU5fR1VF U1RfSEFORExFKHZvaWQpIGNsaV9tZm5fdDsKLS0gCjIuNC4xMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=