From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v6 06/12] microcode: remove struct ucode_cpu_info Date: Mon, 11 Mar 2019 15:57:30 +0800 Message-ID: <1552291056-20286-7-git-send-email-chao.gao@intel.com> References: <1552291056-20286-1-git-send-email-chao.gao@intel.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.89) (envelope-from ) id 1h3Fkp-0003nd-0i for xen-devel@lists.xenproject.org; Mon, 11 Mar 2019 07:53:47 +0000 In-Reply-To: <1552291056-20286-1-git-send-email-chao.gao@intel.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: Sergey Dyasli , Wei Liu , Ashok Raj , Andrew Cooper , Jan Beulich , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org V2UgY2FuIHJlbW92ZSB0aGUgcGVyLWNwdSBjYWNoZSBmaWVsZCBpbiBzdHJ1Y3QgdWNvZGVfY3B1 X2luZm8gc2luY2UKaXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgYSBnbG9iYWwgY2FjaGUuIEl0IHdv dWxkIGxlYWRzIHRvIG9ubHkgb25lIGZpZWxkCnJlbWFpbmluZyBpbiB1Y29kZV9jcHVfaW5mby4g VGhlbiwgdGhpcyBzdHJ1Y3QgaXMgcmVtb3ZlZCBhbmQgdGhlCnJlbWFpbmluZyBmaWVsZCAoY3B1 IHNpZ25hdHVyZSkgaXMgc3RvcmVkIGluIHBlci1jcHUgYXJlYS4KCkFsc28gcmVtb3ZlICdtaWNy b2NvZGVfcmVzdW1lX21hdGNoJyBmcm9tIG1pY3JvY29kZV9vcHMgYmVjYXVzZSB0aGUKY2hlY2sg aXMgZG9uZSBpbiBmaW5kX3BhdGNoKCkuIFRoZSBjcHUgc3RhdHVzIG5vdGlmaWVyIGlzIGFsc28K cmVtb3ZlZC4gSXQgd2FzIHVzZWQgdG8gZnJlZSB0aGUgIm1jIiBmaWVsZCB0byBhdm9pZCBtZW1v cnkgbGVhay4KClNpZ25lZC1vZmYtYnk6IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+Ci0t LQpDaGFuZ2VzIGluIHY2OgogLSByZW1vdmUgdGhlIHdob2xlIHN0cnVjdCB1Y29kZV9jcHVfaW5m byBpbnN0ZWFkIG9mIHRoZSBwZXItY3B1IGNhY2hlCiBpbiBpdC4KLS0tCiB4ZW4vYXJjaC94ODYv YXBpYy5jICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMgICAg ICAgIHwgIDkxICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gv eDg2L21pY3JvY29kZV9hbWQuYyAgICB8IDEwMCArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMgIHwgIDQxICsrKysr LS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyAgICAgICAgfCAgIDIgKy0KIHhl bi9pbmNsdWRlL2FzbS14ODYvbWljcm9jb2RlLmggfCAgMTMgKy0tLS0tCiA2IGZpbGVzIGNoYW5n ZWQsIDMzIGluc2VydGlvbnMoKyksIDIxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvYXBpYy5jIGIveGVuL2FyY2gveDg2L2FwaWMuYwppbmRleCAyYTI0MzI2Li5mZDMx ZDMzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYXBpYy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9h cGljLmMKQEAgLTExODUsNyArMTE4NSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBjaGVja19kZWFk bGluZV9lcnJhdGEodm9pZCkKICAgICBlbHNlCiAgICAgICAgIHJldiA9ICh1bnNpZ25lZCBsb25n KW0tPmRyaXZlcl9kYXRhOwogCi0gICAgaWYgKCB0aGlzX2NwdSh1Y29kZV9jcHVfaW5mbykuY3B1 X3NpZy5yZXYgPj0gcmV2ICkKKyAgICBpZiAoIHRoaXNfY3B1KGNwdV9zaWcpLnJldiA+PSByZXYg KQogICAgICAgICByZXR1cm47CiAKICAgICBzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJF X1RTQ19ERUFETElORSk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMgYi94 ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMKaW5kZXggOWZmYmIxNS4uZmQxYTI0MyAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L21pY3JvY29kZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUu YwpAQCAtMTg2LDcgKzE4Niw3IEBAIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfb3BzICptaWNyb2Nv ZGVfb3BzOwogCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG1pY3JvY29kZV9tdXRleCk7CiAKLURF RklORV9QRVJfQ1BVKHN0cnVjdCB1Y29kZV9jcHVfaW5mbywgdWNvZGVfY3B1X2luZm8pOworREVG SU5FX1BFUl9DUFUoc3RydWN0IGNwdV9zaWduYXR1cmUsIGNwdV9zaWcpOwogCiBzdHJ1Y3QgbWlj cm9jb2RlX2luZm8gewogICAgIHVuc2lnbmVkIGludCBjcHU7CkBAIC0xOTUsMjEgKzE5NSw2IEBA IHN0cnVjdCBtaWNyb2NvZGVfaW5mbyB7CiAgICAgY2hhciBidWZmZXJbMV07CiB9OwogCi1zdGF0 aWMgdm9pZCBfX21pY3JvY29kZV9maW5pX2NwdSh1bnNpZ25lZCBpbnQgY3B1KQotewotICAgIHN0 cnVjdCB1Y29kZV9jcHVfaW5mbyAqdWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8sIGNwdSk7 Ci0KLSAgICB4ZnJlZSh1Y2ktPm1jLm1jX3ZhbGlkKTsKLSAgICBtZW1zZXQodWNpLCAwLCBzaXpl b2YoKnVjaSkpOwotfQotCi1zdGF0aWMgdm9pZCBtaWNyb2NvZGVfZmluaV9jcHUodW5zaWduZWQg aW50IGNwdSkKLXsKLSAgICBzcGluX2xvY2soJm1pY3JvY29kZV9tdXRleCk7Ci0gICAgX19taWNy b2NvZGVfZmluaV9jcHUoY3B1KTsKLSAgICBzcGluX3VubG9jaygmbWljcm9jb2RlX211dGV4KTsK LX0KLQogLyoKICAqIFNhdmUgYW4gdWNvZGUgcGF0Y2ggdG8gdGhlIGdsb2JhbCBjYWNoZSBsaXN0 LgogICoKQEAgLTI3OSw1MiArMjY0LDE2IEBAIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2gg Km1pY3JvY29kZV9maW5kX3BhdGNoKHZvaWQpCiBpbnQgbWljcm9jb2RlX3Jlc3VtZV9jcHUodW5z aWduZWQgaW50IGNwdSkKIHsKICAgICBpbnQgZXJyOwotICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5m byAqdWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8sIGNwdSk7Ci0gICAgc3RydWN0IGNwdV9z aWduYXR1cmUgbnNpZzsKLSAgICB1bnNpZ25lZCBpbnQgY3B1MjsKKyAgICBzdHJ1Y3QgY3B1X3Np Z25hdHVyZSAqc2lnID0gJnBlcl9jcHUoY3B1X3NpZywgY3B1KTsKIAogICAgIGlmICggIW1pY3Jv Y29kZV9vcHMgKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHNwaW5fbG9jaygmbWljcm9jb2Rl X211dGV4KTsKIAotICAgIGVyciA9IG1pY3JvY29kZV9vcHMtPmNvbGxlY3RfY3B1X2luZm8oY3B1 LCAmdWNpLT5jcHVfc2lnKTsKLSAgICBpZiAoIGVyciApCi0gICAgewotICAgICAgICBfX21pY3Jv Y29kZV9maW5pX2NwdShjcHUpOwotICAgICAgICBzcGluX3VubG9jaygmbWljcm9jb2RlX211dGV4 KTsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBpZiAoIHVjaS0+bWMubWNfdmFs aWQgKQotICAgIHsKLSAgICAgICAgZXJyID0gbWljcm9jb2RlX29wcy0+bWljcm9jb2RlX3Jlc3Vt ZV9tYXRjaChjcHUsIHVjaS0+bWMubWNfdmFsaWQpOwotICAgICAgICBpZiAoIGVyciA+PSAwICkK LSAgICAgICAgewotICAgICAgICAgICAgaWYgKCBlcnIgKQotICAgICAgICAgICAgICAgIGVyciA9 IG1pY3JvY29kZV9vcHMtPmFwcGx5X21pY3JvY29kZShjcHUpOwotICAgICAgICAgICAgc3Bpbl91 bmxvY2soJm1pY3JvY29kZV9tdXRleCk7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAg ICB9Ci0gICAgfQotCi0gICAgbnNpZyA9IHVjaS0+Y3B1X3NpZzsKLSAgICBfX21pY3JvY29kZV9m aW5pX2NwdShjcHUpOwotICAgIHVjaS0+Y3B1X3NpZyA9IG5zaWc7Ci0KLSAgICBlcnIgPSAtRUlP OwotICAgIGZvcl9lYWNoX29ubGluZV9jcHUgKCBjcHUyICkKLSAgICB7Ci0gICAgICAgIHVjaSA9 ICZwZXJfY3B1KHVjb2RlX2NwdV9pbmZvLCBjcHUyKTsKLSAgICAgICAgaWYgKCB1Y2ktPm1jLm1j X3ZhbGlkICYmCi0gICAgICAgICAgICAgbWljcm9jb2RlX29wcy0+bWljcm9jb2RlX3Jlc3VtZV9t YXRjaChjcHUsIHVjaS0+bWMubWNfdmFsaWQpID4gMCApCi0gICAgICAgIHsKLSAgICAgICAgICAg IGVyciA9IG1pY3JvY29kZV9vcHMtPmFwcGx5X21pY3JvY29kZShjcHUpOwotICAgICAgICAgICAg YnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfX21pY3JvY29kZV9maW5pX2NwdShjcHUp OworICAgIGVyciA9IG1pY3JvY29kZV9vcHMtPmNvbGxlY3RfY3B1X2luZm8oY3B1LCBzaWcpOwor ICAgIGlmICggbGlrZWx5KCFlcnIpICkKKyAgICAgICAgZXJyID0gbWljcm9jb2RlX29wcy0+YXBw bHlfbWljcm9jb2RlKGNwdSk7CiAgICAgc3Bpbl91bmxvY2soJm1pY3JvY29kZV9tdXRleCk7CiAK ICAgICByZXR1cm4gZXJyOwpAQCAtMzM0LDE2ICsyODMsMTMgQEAgc3RhdGljIGludCBtaWNyb2Nv ZGVfdXBkYXRlX2NwdShjb25zdCB2b2lkICpidWYsIHNpemVfdCBzaXplKQogewogICAgIGludCBl cnI7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzdHJ1 Y3QgdWNvZGVfY3B1X2luZm8gKnVjaSA9ICZwZXJfY3B1KHVjb2RlX2NwdV9pbmZvLCBjcHUpOwor ICAgIHN0cnVjdCBjcHVfc2lnbmF0dXJlICpzaWcgPSAmcGVyX2NwdShjcHVfc2lnLCBjcHUpOwog CiAgICAgc3Bpbl9sb2NrKCZtaWNyb2NvZGVfbXV0ZXgpOwogCi0gICAgZXJyID0gbWljcm9jb2Rl X29wcy0+Y29sbGVjdF9jcHVfaW5mbyhjcHUsICZ1Y2ktPmNwdV9zaWcpOworICAgIGVyciA9IG1p Y3JvY29kZV9vcHMtPmNvbGxlY3RfY3B1X2luZm8oY3B1LCBzaWcpOwogICAgIGlmICggbGlrZWx5 KCFlcnIpICkKICAgICAgICAgZXJyID0gbWljcm9jb2RlX29wcy0+Y3B1X3JlcXVlc3RfbWljcm9j b2RlKGNwdSwgYnVmLCBzaXplKTsKLSAgICBlbHNlCi0gICAgICAgIF9fbWljcm9jb2RlX2Zpbmlf Y3B1KGNwdSk7Ci0KICAgICBzcGluX3VubG9jaygmbWljcm9jb2RlX211dGV4KTsKIAogICAgIHJl dHVybiBlcnI7CkBAIC00MzAsMjUgKzM3Niw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG1pY3JvY29k ZV9pbml0KHZvaWQpCiB9CiBfX2luaXRjYWxsKG1pY3JvY29kZV9pbml0KTsKIAotc3RhdGljIGlu dCBtaWNyb2NvZGVfcGVyY3B1X2NhbGxiYWNrKAotICAgIHN0cnVjdCBub3RpZmllcl9ibG9jayAq bmZiLCB1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqaGNwdSkKLXsKLSAgICB1bnNpZ25lZCBp bnQgY3B1ID0gKHVuc2lnbmVkIGxvbmcpaGNwdTsKLQotICAgIHN3aXRjaCAoIGFjdGlvbiApCi0g ICAgewotICAgIGNhc2UgQ1BVX0RFQUQ6Ci0gICAgICAgIG1pY3JvY29kZV9maW5pX2NwdShjcHUp OwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9USUZZX0RPTkU7Ci19Ci0K LXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbWljcm9jb2RlX3BlcmNwdV9uZmIgPSB7Ci0g ICAgLm5vdGlmaWVyX2NhbGwgPSBtaWNyb2NvZGVfcGVyY3B1X2NhbGxiYWNrLAotfTsKLQogaW50 IF9faW5pdCBlYXJseV9taWNyb2NvZGVfdXBkYXRlX2NwdShib29sIHN0YXJ0X3VwZGF0ZSkKIHsK ICAgICBpbnQgcmMgPSAwOwpAQCAtNDkyLDEyICs0MTksOCBAQCBpbnQgX19pbml0IGVhcmx5X21p Y3JvY29kZV9pbml0KHZvaWQpCiAgICAgICAgIHJldHVybiByYzsKIAogICAgIGlmICggbWljcm9j b2RlX29wcyApCi0gICAgewogICAgICAgICBpZiAoIHVjb2RlX21vZC5tb2RfZW5kIHx8IHVjb2Rl X2Jsb2Iuc2l6ZSApCiAgICAgICAgICAgICByYyA9IGVhcmx5X21pY3JvY29kZV91cGRhdGVfY3B1 KHRydWUpOwogCi0gICAgICAgIHJlZ2lzdGVyX2NwdV9ub3RpZmllcigmbWljcm9jb2RlX3BlcmNw dV9uZmIpOwotICAgIH0KLQogICAgIHJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9taWNyb2NvZGVfYW1kLmMgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCmluZGV4 IDg4OTdjMmMuLjQ1ODZlOGQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1k LmMKKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYwpAQCAtMTU1LDcgKzE1NSw3IEBA IHN0YXRpYyBib29sX3QgZmluZF9lcXVpdl9jcHVfaWQoY29uc3Qgc3RydWN0IGVxdWl2X2NwdV9l bnRyeSAqZXF1aXZfY3B1X3RhYmxlLAogc3RhdGljIGJvb2xfdCBtaWNyb2NvZGVfZml0cyhjb25z dCBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbWNfYW1kLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgY3B1KQogewotICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyAqdWNp ID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8sIGNwdSk7CisgICAgY29uc3Qgc3RydWN0IGNwdV9z aWduYXR1cmUgKnNpZyA9ICZwZXJfY3B1KGNwdV9zaWcsIGNwdSk7CiAgICAgY29uc3Qgc3RydWN0 IG1pY3JvY29kZV9oZWFkZXJfYW1kICptY19oZWFkZXIgPSBtY19hbWQtPm1wYjsKICAgICBjb25z dCBzdHJ1Y3QgZXF1aXZfY3B1X2VudHJ5ICplcXVpdl9jcHVfdGFibGUgPSBtY19hbWQtPmVxdWl2 X2NwdV90YWJsZTsKICAgICB1bnNpZ25lZCBpbnQgY3VycmVudF9jcHVfaWQ7CkBAIC0xNzgsMTQg KzE3OCwxNCBAQCBzdGF0aWMgYm9vbF90IG1pY3JvY29kZV9maXRzKGNvbnN0IHN0cnVjdCBtaWNy b2NvZGVfYW1kICptY19hbWQsCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmICgg bWNfaGVhZGVyLT5wYXRjaF9pZCA8PSB1Y2ktPmNwdV9zaWcucmV2ICkKKyAgICBpZiAoIG1jX2hl YWRlci0+cGF0Y2hfaWQgPD0gc2lnLT5yZXYgKQogICAgIHsKICAgICAgICAgcHJfZGVidWcoIm1p Y3JvY29kZTogcGF0Y2ggaXMgYWxyZWFkeSBhdCByZXF1aXJlZCBsZXZlbCBvciBncmVhdGVyLlxu Iik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIHByX2RlYnVnKCJtaWNyb2NvZGU6 IENQVSVkIGZvdW5kIGEgbWF0Y2hpbmcgbWljcm9jb2RlIHVwZGF0ZSB3aXRoIHZlcnNpb24gJSN4 IChjdXJyZW50PSUjeClcbiIsCi0gICAgICAgICAgICAgY3B1LCBtY19oZWFkZXItPnBhdGNoX2lk LCB1Y2ktPmNwdV9zaWcucmV2KTsKKyAgICAgICAgICAgICBjcHUsIG1jX2hlYWRlci0+cGF0Y2hf aWQsIHNpZy0+cmV2KTsKIAogICAgIHJldHVybiAxOwogfQpAQCAtMjU0LDExICsyNTQsMTEgQEAg c3RhdGljIGVudW0gbWljcm9jb2RlX21hdGNoX3Jlc3VsdCBjb21wYXJlX3BhdGNoKAogc3RhdGlj IGludCBhcHBseV9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSkKIHsKICAgICB1bnNpZ25lZCBs b25nIGZsYWdzOwotICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyAqdWNpID0gJnBlcl9jcHUodWNv ZGVfY3B1X2luZm8sIGNwdSk7CiAgICAgdWludDMyX3QgcmV2OwogICAgIGNvbnN0IHN0cnVjdCBt aWNyb2NvZGVfaGVhZGVyX2FtZCAqaGRyOwogICAgIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0 Y2ggKnBhdGNoOwogICAgIGludCBod19lcnI7CisgICAgc3RydWN0IGNwdV9zaWduYXR1cmUgKnNp ZyA9ICZwZXJfY3B1KGNwdV9zaWcsIGNwdSk7CiAKICAgICAvKiBXZSBzaG91bGQgYmluZCB0aGUg dGFzayB0byB0aGUgQ1BVICovCiAgICAgQlVHX09OKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkgIT0g Y3B1KTsKQEAgLTI5Myw5ICsyOTMsOSBAQCBzdGF0aWMgaW50IGFwcGx5X21pY3JvY29kZSh1bnNp Z25lZCBpbnQgY3B1KQogICAgIH0KIAogICAgIHByaW50ayhLRVJOX1dBUk5JTkcgIm1pY3JvY29k ZTogQ1BVJWQgdXBkYXRlZCBmcm9tIHJldmlzaW9uICUjeCB0byAlI3hcbiIsCi0gICAgICAgICAg IGNwdSwgdWNpLT5jcHVfc2lnLnJldiwgaGRyLT5wYXRjaF9pZCk7CisgICAgICAgICAgIGNwdSwg c2lnLT5yZXYsIGhkci0+cGF0Y2hfaWQpOwogCi0gICAgdWNpLT5jcHVfc2lnLnJldiA9IHJldjsK KyAgICBzaWctPnJldiA9IHJldjsKIAogICAgIHJldHVybiAwOwogfQpAQCAtNDQxLDE0ICs0NDEs MTQgQEAgc3RhdGljIGJvb2xfdCBjaGVja19maW5hbF9wYXRjaF9sZXZlbHModW5zaWduZWQgaW50 IGNwdSkKICAgICAgKiBhbnkgb2YgdGhlICdmaW5hbF9sZXZlbHMnLCB0aGVuIHdlIHNob3VsZCBu b3QgdXBkYXRlIHRoZSBtaWNyb2NvZGUKICAgICAgKiBwYXRjaCBvbiB0aGUgY3B1IGFzIHN5c3Rl bSB3aWxsIGhhbmcgb3RoZXJ3aXNlLgogICAgICAqLwotICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5m byAqdWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8sIGNwdSk7CisgICAgY29uc3Qgc3RydWN0 IGNwdV9zaWduYXR1cmUgKnNpZyA9ICZwZXJfY3B1KGNwdV9zaWcsIGNwdSk7CiAgICAgdW5zaWdu ZWQgaW50IGk7CiAKICAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2ICE9IDB4MTAgKQogICAgICAg ICByZXR1cm4gMDsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0laRShmaW5hbF9sZXZl bHMpOyBpKysgKQotICAgICAgICBpZiAoIHVjaS0+Y3B1X3NpZy5yZXYgPT0gZmluYWxfbGV2ZWxz W2ldICkKKyAgICAgICAgaWYgKCBzaWctPnJldiA9PSBmaW5hbF9sZXZlbHNbaV0gKQogICAgICAg ICAgICAgcmV0dXJuIDE7CiAKICAgICByZXR1cm4gMDsKQEAgLTQ1NywxMyArNDU3LDEyIEBAIHN0 YXRpYyBib29sX3QgY2hlY2tfZmluYWxfcGF0Y2hfbGV2ZWxzKHVuc2lnbmVkIGludCBjcHUpCiBz dGF0aWMgaW50IGNwdV9yZXF1ZXN0X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2 b2lkICpidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmc2l6 ZSkKIHsKLSAgICBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbWNfYW1kLCAqbWNfb2xkOworICAgIHN0 cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQ7CiAgICAgc2l6ZV90IG9mZnNldCA9IDA7Ci0gICAg c2l6ZV90IGxhc3Rfb2Zmc2V0LCBhcHBsaWVkX29mZnNldCA9IDA7Ci0gICAgaW50IGVycm9yID0g MCwgc2F2ZV9lcnJvciA9IDE7Ci0gICAgc3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmcGVy X2NwdSh1Y29kZV9jcHVfaW5mbywgY3B1KTsKKyAgICBpbnQgZXJyb3IgPSAwOwogICAgIHVuc2ln bmVkIGludCBjdXJyZW50X2NwdV9pZDsKICAgICB1bnNpZ25lZCBpbnQgZXF1aXZfY3B1X2lkOwor ICAgIGNvbnN0IHN0cnVjdCBjcHVfc2lnbmF0dXJlICpzaWcgPSAmcGVyX2NwdShjcHVfc2lnLCBj cHUpOwogCiAgICAgLyogV2Ugc2hvdWxkIGJpbmQgdGhlIHRhc2sgdG8gdGhlIENQVSAqLwogICAg IEJVR19PTihjcHUgIT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSk7CkBAIC01MzIsNyArNTMxLDcg QEAgc3RhdGljIGludCBjcHVfcmVxdWVzdF9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSwgY29u c3Qgdm9pZCAqYnVmLAogICAgICAgICB7CiAgICAgICAgICAgICBwcmludGsoS0VSTl9FUlIgIm1p Y3JvY29kZTogQ1BVJWQgaW5jb3JyZWN0IG9yIGNvcnJ1cHQgY29udGFpbmVyIGZpbGVcbiIKICAg ICAgICAgICAgICAgICAgICAibWljcm9jb2RlOiBGYWlsZWQgdG8gdXBkYXRlIHBhdGNoIGxldmVs LiAiCi0gICAgICAgICAgICAgICAgICAgIkN1cnJlbnQgbHZsOiUjeFxuIiwgY3B1LCB1Y2ktPmNw dV9zaWcucmV2KTsKKyAgICAgICAgICAgICAgICAgICAiQ3VycmVudCBsdmw6JSN4XG4iLCBjcHUs IHNpZy0+cmV2KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtNTQz LDE3ICs1NDIsMTIgQEAgc3RhdGljIGludCBjcHVfcmVxdWVzdF9taWNyb2NvZGUodW5zaWduZWQg aW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAg ICBtY19vbGQgPSB1Y2ktPm1jLm1jX2FtZDsKLSAgICAvKiBpbXBsaWNpdGVseSB2YWxpZGF0ZXMg dWNpLT5tYy5tY192YWxpZCAqLwotICAgIHVjaS0+bWMubWNfYW1kID0gbWNfYW1kOwotCiAgICAg LyoKICAgICAgKiBJdCdzIHBvc3NpYmxlIHRoZSBkYXRhIGZpbGUgaGFzIG11bHRpcGxlIG1hdGNo aW5nIHVjb2RlLAogICAgICAqIGxldHMga2VlcCBzZWFyY2hpbmcgdGlsbCB0aGUgbGF0ZXN0IHZl cnNpb24KICAgICAgKi8KICAgICBtY19hbWQtPm1wYiA9IE5VTEw7CiAgICAgbWNfYW1kLT5tcGJf c2l6ZSA9IDA7Ci0gICAgbGFzdF9vZmZzZXQgPSBvZmZzZXQ7CiAgICAgd2hpbGUgKCAoZXJyb3Ig PSBnZXRfdWNvZGVfZnJvbV9idWZmZXJfYW1kKG1jX2FtZCwgYnVmLCBidWZzaXplLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb2Zmc2V0KSkgPT0gMCAp CiAgICAgewpAQCAtNTc2LDExICs1NzAsOCBAQCBzdGF0aWMgaW50IGNwdV9yZXF1ZXN0X21pY3Jv Y29kZSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lkICpidWYsCiAgICAgICAgICAgICBlcnJv ciA9IGFwcGx5X21pY3JvY29kZShjcHUpOwogICAgICAgICAgICAgaWYgKCBlcnJvciApCiAgICAg ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBhcHBsaWVkX29mZnNldCA9IGxhc3Rfb2Zm c2V0OwogICAgICAgICB9CiAKLSAgICAgICAgbGFzdF9vZmZzZXQgPSBvZmZzZXQ7Ci0KICAgICAg ICAgaWYgKCBvZmZzZXQgPj0gYnVmc2l6ZSApCiAgICAgICAgICAgICBicmVhazsKIApAQCAtNjA5 LDI2ICs2MDAsNiBAQCBzdGF0aWMgaW50IGNwdV9yZXF1ZXN0X21pY3JvY29kZSh1bnNpZ25lZCBp bnQgY3B1LCBjb25zdCB2b2lkICpidWYsCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAKLSAg ICAvKiBPbiBzdWNjZXNzIGtlZXAgdGhlIG1pY3JvY29kZSBwYXRjaCBmb3IKLSAgICAgKiByZS1h cHBseSBvbiByZXN1bWUuCi0gICAgICovCi0gICAgaWYgKCBhcHBsaWVkX29mZnNldCApCi0gICAg ewotICAgICAgICBzYXZlX2Vycm9yID0gZ2V0X3Vjb2RlX2Zyb21fYnVmZmVyX2FtZCgKLSAgICAg ICAgICAgIG1jX2FtZCwgYnVmLCBidWZzaXplLCAmYXBwbGllZF9vZmZzZXQpOwotCi0gICAgICAg IGlmICggc2F2ZV9lcnJvciApCi0gICAgICAgICAgICBlcnJvciA9IHNhdmVfZXJyb3I7Ci0gICAg fQotCi0gICAgaWYgKCBzYXZlX2Vycm9yICkKLSAgICB7Ci0gICAgICAgIHhmcmVlKG1jX2FtZCk7 Ci0gICAgICAgIHVjaS0+bWMubWNfYW1kID0gbWNfb2xkOwotICAgIH0KLSAgICBlbHNlCi0gICAg ICAgIHhmcmVlKG1jX29sZCk7Ci0KICAgb3V0OgogI2lmIENPTkZJR19IVk0KICAgICBzdm1faG9z dF9vc3Z3X2luaXQoKTsKQEAgLTY0Myw1MiArNjE0LDYgQEAgc3RhdGljIGludCBjcHVfcmVxdWVz dF9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAogICAgIHJldHVy biBlcnJvcjsKIH0KIAotc3RhdGljIGludCBtaWNyb2NvZGVfcmVzdW1lX21hdGNoKHVuc2lnbmVk IGludCBjcHUsIGNvbnN0IHZvaWQgKm1jKQotewotICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyAq dWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8sIGNwdSk7Ci0gICAgc3RydWN0IG1pY3JvY29k ZV9hbWQgKm1jX2FtZCA9IHVjaS0+bWMubWNfYW1kOwotICAgIGNvbnN0IHN0cnVjdCBtaWNyb2Nv ZGVfYW1kICpzcmMgPSBtYzsKLQotICAgIGlmICggIW1pY3JvY29kZV9maXRzKHNyYywgY3B1KSAp Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgaWYgKCBzcmMgIT0gbWNfYW1kICkKLSAgICB7Ci0g ICAgICAgIGlmICggbWNfYW1kICkKLSAgICAgICAgewotICAgICAgICAgICAgeGZyZWUobWNfYW1k LT5lcXVpdl9jcHVfdGFibGUpOwotICAgICAgICAgICAgeGZyZWUobWNfYW1kLT5tcGIpOwotICAg ICAgICAgICAgeGZyZWUobWNfYW1kKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1jX2FtZCA9IHht YWxsb2Moc3RydWN0IG1pY3JvY29kZV9hbWQpOwotICAgICAgICB1Y2ktPm1jLm1jX2FtZCA9IG1j X2FtZDsKLSAgICAgICAgaWYgKCAhbWNfYW1kICkKLSAgICAgICAgICAgIHJldHVybiAtRU5PTUVN OwotICAgICAgICBtY19hbWQtPmVxdWl2X2NwdV90YWJsZSA9IHhtYWxsb2NfYnl0ZXMoc3JjLT5l cXVpdl9jcHVfdGFibGVfc2l6ZSk7Ci0gICAgICAgIGlmICggIW1jX2FtZC0+ZXF1aXZfY3B1X3Rh YmxlICkKLSAgICAgICAgICAgIGdvdG8gZXJyMTsKLSAgICAgICAgbWNfYW1kLT5tcGIgPSB4bWFs bG9jX2J5dGVzKHNyYy0+bXBiX3NpemUpOwotICAgICAgICBpZiAoICFtY19hbWQtPm1wYiApCi0g ICAgICAgICAgICBnb3RvIGVycjI7Ci0KLSAgICAgICAgbWNfYW1kLT5lcXVpdl9jcHVfdGFibGVf c2l6ZSA9IHNyYy0+ZXF1aXZfY3B1X3RhYmxlX3NpemU7Ci0gICAgICAgIG1jX2FtZC0+bXBiX3Np emUgPSBzcmMtPm1wYl9zaXplOwotICAgICAgICBtZW1jcHkobWNfYW1kLT5tcGIsIHNyYy0+bXBi LCBzcmMtPm1wYl9zaXplKTsKLSAgICAgICAgbWVtY3B5KG1jX2FtZC0+ZXF1aXZfY3B1X3RhYmxl LCBzcmMtPmVxdWl2X2NwdV90YWJsZSwKLSAgICAgICAgICAgICAgIHNyYy0+ZXF1aXZfY3B1X3Rh YmxlX3NpemUpOwotICAgIH0KLQotICAgIHJldHVybiAxOwotCi1lcnIyOgotICAgIHhmcmVlKG1j X2FtZC0+ZXF1aXZfY3B1X3RhYmxlKTsKLWVycjE6Ci0gICAgeGZyZWUobWNfYW1kKTsKLSAgICB1 Y2ktPm1jLm1jX2FtZCA9IE5VTEw7Ci0gICAgcmV0dXJuIC1FTk9NRU07Ci19Ci0KIHN0YXRpYyBp bnQgc3RhcnRfdXBkYXRlKHZvaWQpCiB7CiAjaWYgQ09ORklHX0hWTQpAQCAtNzA4LDcgKzYzMyw2 IEBAIHN0YXRpYyBpbnQgc3RhcnRfdXBkYXRlKHZvaWQpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbWljcm9jb2RlX29wcyBtaWNyb2NvZGVfYW1kX29wcyA9IHsKLSAgICAubWljcm9jb2RlX3Jl c3VtZV9tYXRjaCAgICAgICAgICAgPSBtaWNyb2NvZGVfcmVzdW1lX21hdGNoLAogICAgIC5jcHVf cmVxdWVzdF9taWNyb2NvZGUgICAgICAgICAgICA9IGNwdV9yZXF1ZXN0X21pY3JvY29kZSwKICAg ICAuY29sbGVjdF9jcHVfaW5mbyAgICAgICAgICAgICAgICAgPSBjb2xsZWN0X2NwdV9pbmZvLAog ICAgIC5hcHBseV9taWNyb2NvZGUgICAgICAgICAgICAgICAgICA9IGFwcGx5X21pY3JvY29kZSwK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYyBiL3hlbi9hcmNoL3g4 Ni9taWNyb2NvZGVfaW50ZWwuYwppbmRleCBkOTczNjM0Li5hNDk1NzAxIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMKKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29k ZV9pbnRlbC5jCkBAIC0xNjIsMTEgKzE2MiwxMCBAQCBzdGF0aWMgZW51bSBtaWNyb2NvZGVfbWF0 Y2hfcmVzdWx0IG1pY3JvY29kZV91cGRhdGVfbWF0Y2goCiAKIHN0YXRpYyBib29sIG1hdGNoX2Nw dShjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCkKIHsKLSAgICBzdHJ1Y3QgdWNv ZGVfY3B1X2luZm8gKnVjaSA9ICZ0aGlzX2NwdSh1Y29kZV9jcHVfaW5mbyk7Ci0gICAgaW50IHJl dCA9IG1pY3JvY29kZV91cGRhdGVfbWF0Y2gocGF0Y2gtPmRhdGEsIHVjaS0+Y3B1X3NpZy5zaWcs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWNpLT5jcHVfc2lnLnBmLCB1 Y2ktPmNwdV9zaWcucmV2KTsKKyAgICBjb25zdCBzdHJ1Y3QgY3B1X3NpZ25hdHVyZSAqc2lnID0g JnRoaXNfY3B1KGNwdV9zaWcpOwogCi0gICAgcmV0dXJuIHJldCA9PSBORVdfVUNPREU7CisgICAg cmV0dXJuIG1pY3JvY29kZV91cGRhdGVfbWF0Y2gocGF0Y2gtPmRhdGEsIHNpZy0+c2lnLCBzaWct PnBmLCBzaWctPnJldikgPT0KKyAgICAgICAgICAgICAgIE5FV19VQ09ERTsKIH0KIAogLyoKQEAg LTE3OCw4ICsxNzcsNyBAQCBzdGF0aWMgYm9vbCBtYXRjaF9jcHUoY29uc3Qgc3RydWN0IG1pY3Jv Y29kZV9wYXRjaCAqcGF0Y2gpCiAgKi8KIHN0YXRpYyBib29sIGlzX3BhdGNoX2NvbXBhdGlibGUo Y29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpCiB7Ci0gICAgc3RydWN0IHVjb2Rl X2NwdV9pbmZvICp1Y2kgPSAmdGhpc19jcHUodWNvZGVfY3B1X2luZm8pOwotICAgIGNvbnN0IHN0 cnVjdCBjcHVfc2lnbmF0dXJlICpjc2lnID0gJnVjaS0+Y3B1X3NpZzsKKyAgICBjb25zdCBzdHJ1 Y3QgY3B1X3NpZ25hdHVyZSAqY3NpZyA9ICZ0aGlzX2NwdShjcHVfc2lnKTsKICAgICBjb25zdCBz dHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9pbnRlbCAqbWNfaGVhZGVyID0gcGF0Y2gtPmRhdGE7CiAg ICAgY29uc3Qgc3RydWN0IGV4dGVuZGVkX3NpZ3RhYmxlICpleHRfaGVhZGVyOwogICAgIGNvbnN0 IHN0cnVjdCBleHRlbmRlZF9zaWduYXR1cmUgKmV4dF9zaWc7CkBAIC0zMTMsNyArMzExLDcgQEAg c3RhdGljIGVudW0gbWljcm9jb2RlX21hdGNoX3Jlc3VsdCBjb21wYXJlX3BhdGNoKAogICovCiBz dGF0aWMgaW50IGdldF9tYXRjaGluZ19taWNyb2NvZGUoY29uc3Qgdm9pZCAqbWMsIHVuc2lnbmVk IGludCBjcHUpCiB7Ci0gICAgc3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1 Y29kZV9jcHVfaW5mbywgY3B1KTsKKyAgICBjb25zdCBzdHJ1Y3QgY3B1X3NpZ25hdHVyZSAqc2ln ID0gJnBlcl9jcHUoY3B1X3NpZywgY3B1KTsKICAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2hl YWRlcl9pbnRlbCAqbWNfaGVhZGVyID0gbWM7CiAgICAgdW5zaWduZWQgbG9uZyB0b3RhbF9zaXpl ID0gZ2V0X3RvdGFsc2l6ZShtY19oZWFkZXIpOwogICAgIHZvaWQgKm5ld19tYyA9IHhtYWxsb2Nf Ynl0ZXModG90YWxfc2l6ZSk7CkBAIC0zMzYsMjMgKzMzNCwxMiBAQCBzdGF0aWMgaW50IGdldF9t YXRjaGluZ19taWNyb2NvZGUoY29uc3Qgdm9pZCAqbWMsIHVuc2lnbmVkIGludCBjcHUpCiAgICAg aWYgKCAhbWljcm9jb2RlX3NhdmVfcGF0Y2gobWljcm9jb2RlX3BhdGNoKSApCiAgICAgICAgIHJl dHVybiAwOwogCi0gICAgaWYgKCBtaWNyb2NvZGVfdXBkYXRlX21hdGNoKG1jLCB1Y2ktPmNwdV9z aWcuc2lnLCB1Y2ktPmNwdV9zaWcucGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVjaS0+Y3B1X3NpZy5yZXYpICE9IE5FV19VQ09ERSApCisgICAgaWYgKCBtaWNyb2NvZGVfdXBk YXRlX21hdGNoKG1jLCBzaWctPnNpZywgc2lnLT5wZiwgc2lnLT5yZXYpICE9IE5FV19VQ09ERSAp CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgcHJfZGVidWcoIm1pY3JvY29kZTogQ1BVJWQgZm91 bmQgYSBtYXRjaGluZyBtaWNyb2NvZGUgdXBkYXRlIHdpdGgiCiAgICAgICAgICAgICAgIiB2ZXJz aW9uICUjeCAoY3VycmVudD0lI3gpXG4iLAotICAgICAgICAgICAgIGNwdSwgbWNfaGVhZGVyLT5y ZXYsIHVjaS0+Y3B1X3NpZy5yZXYpOwotICAgIG5ld19tYyA9IHhtYWxsb2NfYnl0ZXModG90YWxf c2l6ZSk7Ci0gICAgaWYgKCBuZXdfbWMgPT0gTlVMTCApCi0gICAgewotICAgICAgICBwcmludGso S0VSTl9FUlIgIm1pY3JvY29kZTogZXJyb3IhIENhbiBub3QgYWxsb2NhdGUgbWVtb3J5XG4iKTsK LSAgICAgICAgcmV0dXJuIC1FTk9NRU07Ci0gICAgfQotCi0gICAgbWVtY3B5KG5ld19tYywgbWMs IHRvdGFsX3NpemUpOwotICAgIHhmcmVlKHVjaS0+bWMubWNfaW50ZWwpOwotICAgIHVjaS0+bWMu bWNfaW50ZWwgPSBuZXdfbWM7CisgICAgICAgICAgICAgY3B1LCBtY19oZWFkZXItPnJldiwgc2ln LT5yZXYpOwogICAgIHJldHVybiAxOwogfQogCkBAIC0zNjIsNyArMzQ5LDcgQEAgc3RhdGljIGlu dCBhcHBseV9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSkKICAgICB1aW50NjRfdCBtc3JfY29u dGVudDsKICAgICB1bnNpZ25lZCBpbnQgdmFsWzJdOwogICAgIHVuc2lnbmVkIGludCBjcHVfbnVt ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzdHJ1Y3QgdWNvZGVfY3B1X2luZm8gKnVj aSA9ICZwZXJfY3B1KHVjb2RlX2NwdV9pbmZvLCBjcHVfbnVtKTsKKyAgICBzdHJ1Y3QgY3B1X3Np Z25hdHVyZSAqc2lnID0gJnBlcl9jcHUoY3B1X3NpZywgY3B1KTsKICAgICBjb25zdCBzdHJ1Y3Qg bWljcm9jb2RlX2ludGVsICptY19pbnRlbDsKICAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3Bh dGNoICpwYXRjaDsKIApAQCAtMzk0LDE2ICszODEsMTYgQEAgc3RhdGljIGludCBhcHBseV9taWNy b2NvZGUodW5zaWduZWQgaW50IGNwdSkKICAgICB7CiAgICAgICAgIHByaW50ayhLRVJOX0VSUiAi bWljcm9jb2RlOiBDUFUlZCB1cGRhdGUgZnJvbSByZXZpc2lvbiAiCiAgICAgICAgICAgICAgICAi JSN4IHRvICUjeCBmYWlsZWQuIFJlc3VsdGluZyByZXZpc2lvbiBpcyAlI3guXG4iLCBjcHVfbnVt LAotICAgICAgICAgICAgICAgdWNpLT5jcHVfc2lnLnJldiwgbWNfaW50ZWwtPmhkci5yZXYsIHZh bFsxXSk7CisgICAgICAgICAgICAgICBzaWctPnJldiwgbWNfaW50ZWwtPmhkci5yZXYsIHZhbFsx XSk7CiAgICAgICAgIHJldHVybiAtRUlPOwogICAgIH0KICAgICBwcmludGsoS0VSTl9JTkZPICJt aWNyb2NvZGU6IENQVSVkIHVwZGF0ZWQgZnJvbSByZXZpc2lvbiAiCiAgICAgICAgICAgICIlI3gg dG8gJSN4LCBkYXRlID0gJTA0eC0lMDJ4LSUwMnggXG4iLAotICAgICAgICAgICBjcHVfbnVtLCB1 Y2ktPmNwdV9zaWcucmV2LCB2YWxbMV0sCisgICAgICAgICAgIGNwdV9udW0sIHNpZy0+cmV2LCB2 YWxbMV0sCiAgICAgICAgICAgIG1jX2ludGVsLT5oZHIueWVhciwKICAgICAgICAgICAgbWNfaW50 ZWwtPmhkci5tb250aCwKICAgICAgICAgICAgbWNfaW50ZWwtPmhkci5kYXkpOwotICAgIHVjaS0+ Y3B1X3NpZy5yZXYgPSB2YWxbMV07CisgICAgc2lnLT5yZXYgPSB2YWxbMV07CiAKICAgICByZXR1 cm4gMDsKIH0KQEAgLTQ3NywxMyArNDY0LDcgQEAgc3RhdGljIGludCBjcHVfcmVxdWVzdF9taWNy b2NvZGUodW5zaWduZWQgaW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAogICAgIHJldHVybiBlcnJv cjsKIH0KIAotc3RhdGljIGludCBtaWNyb2NvZGVfcmVzdW1lX21hdGNoKHVuc2lnbmVkIGludCBj cHUsIGNvbnN0IHZvaWQgKm1jKQotewotICAgIHJldHVybiBnZXRfbWF0Y2hpbmdfbWljcm9jb2Rl KG1jLCBjcHUpOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9vcHMgbWljcm9j b2RlX2ludGVsX29wcyA9IHsKLSAgICAubWljcm9jb2RlX3Jlc3VtZV9tYXRjaCAgICAgICAgICAg PSBtaWNyb2NvZGVfcmVzdW1lX21hdGNoLAogICAgIC5jcHVfcmVxdWVzdF9taWNyb2NvZGUgICAg ICAgICAgICA9IGNwdV9yZXF1ZXN0X21pY3JvY29kZSwKICAgICAuY29sbGVjdF9jcHVfaW5mbyAg ICAgICAgICAgICAgICAgPSBjb2xsZWN0X2NwdV9pbmZvLAogICAgIC5hcHBseV9taWNyb2NvZGUg ICAgICAgICAgICAgICAgICA9IGFwcGx5X21pY3JvY29kZSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9zcGVjX2N0cmwuYyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCBhZDcyZWNk Li5iMTRkNTkxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMKKysrIGIveGVu L2FyY2gveDg2L3NwZWNfY3RybC5jCkBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIHZvaWQgX19p bml0IHByaW50X2RldGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmssIHVpbnQ2NF90IGNhcHMpCiAv KiBDYWxjdWxhdGUgd2hldGhlciBSZXRwb2xpbmUgaXMga25vd24tc2FmZSBvbiB0aGlzIENQVS4g Ki8KIHN0YXRpYyBib29sIF9faW5pdCByZXRwb2xpbmVfc2FmZSh1aW50NjRfdCBjYXBzKQogewot ICAgIHVuc2lnbmVkIGludCB1Y29kZV9yZXYgPSB0aGlzX2NwdSh1Y29kZV9jcHVfaW5mbykuY3B1 X3NpZy5yZXY7CisgICAgdW5zaWduZWQgaW50IHVjb2RlX3JldiA9IHRoaXNfY3B1KGNwdV9zaWcp LnJldjsKIAogICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1Jf QU1EICkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L21pY3JvY29kZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaAppbmRleCA5 MjYzMWI0Li4yM2ZjMTliIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L21pY3JvY29k ZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbWljcm9jb2RlLmgKQEAgLTExLDcgKzExLDYg QEAgZW51bSBtaWNyb2NvZGVfbWF0Y2hfcmVzdWx0IHsKIH07CiAKIHN0cnVjdCBjcHVfc2lnbmF0 dXJlOwotc3RydWN0IHVjb2RlX2NwdV9pbmZvOwogCiBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoIHsK ICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CkBAIC0xOSw3ICsxOCw2IEBAIHN0cnVjdCBtaWNy b2NvZGVfcGF0Y2ggewogfTsKIAogc3RydWN0IG1pY3JvY29kZV9vcHMgewotICAgIGludCAoKm1p Y3JvY29kZV9yZXN1bWVfbWF0Y2gpKHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKm1jKTsK ICAgICBpbnQgKCpjcHVfcmVxdWVzdF9taWNyb2NvZGUpKHVuc2lnbmVkIGludCBjcHUsIGNvbnN0 IHZvaWQgKmJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXpl KTsKICAgICBpbnQgKCpjb2xsZWN0X2NwdV9pbmZvKSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3Qg Y3B1X3NpZ25hdHVyZSAqY3NpZyk7CkBAIC0zOCwxNiArMzYsNyBAQCBzdHJ1Y3QgY3B1X3NpZ25h dHVyZSB7CiAgICAgdW5zaWduZWQgaW50IHJldjsKIH07CiAKLXN0cnVjdCB1Y29kZV9jcHVfaW5m byB7Ci0gICAgc3RydWN0IGNwdV9zaWduYXR1cmUgY3B1X3NpZzsKLSAgICB1bmlvbiB7Ci0gICAg ICAgIHN0cnVjdCBtaWNyb2NvZGVfaW50ZWwgKm1jX2ludGVsOwotICAgICAgICBzdHJ1Y3QgbWlj cm9jb2RlX2FtZCAqbWNfYW1kOwotICAgICAgICB2b2lkICptY192YWxpZDsKLSAgICB9IG1jOwot fTsKLQotREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCB1Y29kZV9jcHVfaW5mbywgdWNvZGVfY3B1X2lu Zm8pOworREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBjcHVfc2lnbmF0dXJlLCBjcHVfc2lnKTsKIGV4 dGVybiBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX29wcyAqbWljcm9jb2RlX29wczsKIAogYm9vbCBt aWNyb2NvZGVfc2F2ZV9wYXRjaChzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpuZXdfcGF0Y2gpOwot LSAKMS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=