From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 1/2] x86/paging: Update paging_mark_dirty() to use mfn_t Date: Wed, 14 Dec 2016 14:26:28 +0000 Message-ID: <1481725589-5251-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: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Stefano Stabellini , George Dunlap , Andrew Cooper , Tim Deegan , Julien Grall , Jan Beulich List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K LS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBUaW0gRGVlZ2FuIDx0 aW1AeGVuLm9yZz4KQ0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNv bT4KQ0M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ0M6 IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBH cmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CgpUaGUgb25lIHVzZSBvZiBwYWdpbmdfbWFya19k aXJ0eSgpIGluIGNvbW1vbi90bWVtIHNob3dzIHRoYXQgVE1FTSBjdXJyZW50bHkKd29udCBjb21w aWxlIGZvciBBUk0uCgpJIGNvbnNpZGVyZWQgaW50cm9kdWNpbmcgYSBjb21tb24gcHJvdG90eXBl IGluIGluY2x1ZGUveGVuL3BhZ2luZy5oIHdoaWNoIGNhbgpiZSBvdmVycmlkZW4gYnkgaW5jbHVk ZS9hc20vcGFnaW5nLmgsIHdoaWNoIHdvdWxkIGFsc28gYWxsb3cgdGhlIHJlbW92YWwgb2YKZ250 dGFiX21hcmtfZGlydHkoKSB3aGljaCBzZWVtcyB0byBleGlzdCBvbmx5IHRvIHN0dWIgb3V0IG90 aGVyIGNvbW1vbiB1c2VzLgoKSWYgdGhpcyBpcyBjb25zaWRlcmVkIGEgZ29vZCBpZGVhLCBJJ2Qg cHJlZmVyIHRvIHN1Ym1pdCBhIHNlcGFyYXRlIHBhdGNoIHRoYW4KdG8gbWVyZ2UgaXQgaW50byB0 aGlzIG9uZS4KLS0tCiB4ZW4vYXJjaC94ODYvZGVidWcuYyAgICAgICAgICAgICAgfCAgMiArLQog eGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tCiB4ZW4v YXJjaC94ODYvaHZtL2lvcmVxLmMgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21tLmMg ICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL2d1 ZXN0X3dhbGsuYyAgICAgIHwgIDggKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmlu Zy5jICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvbW0vcDJtLXBvZC5jICAgICAgICAgfCAgMiAr LQogeGVuL2FyY2gveDg2L21tL3BhZ2luZy5jICAgICAgICAgIHwgIDUgKy0tLS0KIHhlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgICB8ICA2ICsrKy0tLQogeGVuL2FyY2gveDg2L21tL3No YWRvdy9tdWx0aS5jICAgIHwgIDIgKy0KIHhlbi9jb21tb24vdG1lbV94ZW4uYyAgICAgICAgICAg ICB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxlLmggfCAgMiArLQogeGVu L2luY2x1ZGUvYXNtLXg4Ni9wYWdpbmcuaCAgICAgIHwgIDIgKy0KIDEzIGZpbGVzIGNoYW5nZWQs IDMwIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9kZWJ1Zy5jIGIveGVuL2FyY2gveDg2L2RlYnVnLmMKaW5kZXggMzAzMDAyMi4uMjU5Yjhj NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RlYnVnLmMKKysrIGIveGVuL2FyY2gveDg2L2Rl YnVnLmMKQEAgLTE4MSw3ICsxODEsNyBAQCB1bnNpZ25lZCBpbnQgZGJnX3J3X2d1ZXN0X21lbShz dHJ1Y3QgZG9tYWluICpkcCwgdm9pZCAqIF9fdXNlciBnYWRkciwKICAgICAgICAgaWYgKCB0b2Fk ZHIgKQogICAgICAgICB7CiAgICAgICAgICAgICBjb3B5X2Zyb21fdXNlcih2YSwgYnVmLCBwYWdl Y250KTsgICAgLyogdmEgPSBidWYgKi8KLSAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGRw LCBtZm5feChtZm4pKTsKKyAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGRwLCBtZm4pOwog ICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggNjFmNTAyOS4uYTU4 OWIxNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL2h2bS5jCkBAIC0xOTIzLDcgKzE5MjMsNyBAQCBpbnQgaHZtX2hhcF9uZXN0ZWRfcGFn ZV9mYXVsdChwYWRkcl90IGdwYSwgdW5zaWduZWQgbG9uZyBnbGEsCiAgICAgICAgICAqLwogICAg ICAgICBpZiAoIG5wZmVjLndyaXRlX2FjY2VzcyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHBh Z2luZ19tYXJrX2RpcnR5KGN1cnJkLCBtZm5feChtZm4pKTsKKyAgICAgICAgICAgIHBhZ2luZ19t YXJrX2RpcnR5KGN1cnJkLCBtZm4pOwogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIElm IHAybSBpcyByZWFsbHkgYW4gYWx0cDJtLCB1bmxvY2sgaGVyZSB0byBhdm9pZCBsb2NrIG9yZGVy aW5nCiAgICAgICAgICAgICAgKiB2aW9sYXRpb24gd2hlbiB0aGUgY2hhbmdlIGJlbG93IGlzIHBy b3BhZ2F0ZWQgZnJvbSBob3N0IHAybS4KQEAgLTI2MTMsNyArMjYxMyw3IEBAIHN0YXRpYyB2b2lk ICpfaHZtX21hcF9ndWVzdF9mcmFtZSh1bnNpZ25lZCBsb25nIGdmbiwgYm9vbF90IHBlcm1hbmVu dCwKICAgICAgICAgaWYgKCB1bmxpa2VseShwMm1faXNfZGlzY2FyZF93cml0ZShwMm10KSkgKQog ICAgICAgICAgICAgKndyaXRhYmxlID0gMDsKICAgICAgICAgZWxzZSBpZiAoICFwZXJtYW5lbnQg KQotICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgcGFnZV90b19tZm4ocGFnZSkpOwor ICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgX21mbihwYWdlX3RvX21mbihwYWdlKSkp OwogICAgIH0KIAogICAgIGlmICggIXBlcm1hbmVudCApCkBAIC0yNjc2LDcgKzI2NzYsNyBAQCB2 b2lkIGh2bV91bm1hcF9ndWVzdF9mcmFtZSh2b2lkICpwLCBib29sX3QgcGVybWFuZW50KQogICAg ICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHRyYWNrLCAmZC0+YXJjaC5odm1fZG9tYWluLndyaXRl X21hcC5saXN0LCBsaXN0KQogICAgICAgICAgICAgaWYgKCB0cmFjay0+cGFnZSA9PSBwYWdlICkK ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBtZm4p OworICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIF9tZm4obWZuKSk7CiAgICAg ICAgICAgICAgICAgbGlzdF9kZWwoJnRyYWNrLT5saXN0KTsKICAgICAgICAgICAgICAgICB4ZnJl ZSh0cmFjayk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjkzLDcgKzI2OTMsNyBAQCB2 b2lkIGh2bV9tYXBwZWRfZ3Vlc3RfZnJhbWVzX21hcmtfZGlydHkoc3RydWN0IGRvbWFpbiAqZCkK IAogICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm1fZG9tYWluLndyaXRlX21hcC5sb2NrKTsKICAg ICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHRyYWNrLCAmZC0+YXJjaC5odm1fZG9tYWluLndyaXRlX21h cC5saXN0LCBsaXN0KQotICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBwYWdlX3RvX21mbih0 cmFjay0+cGFnZSkpOworICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBfbWZuKHBhZ2VfdG9f bWZuKHRyYWNrLT5wYWdlKSkpOwogICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4u d3JpdGVfbWFwLmxvY2spOwogfQogCkBAIC0zMjExLDcgKzMyMTEsNyBAQCBzdGF0aWMgZW51bSBo dm1fY29weV9yZXN1bHQgX19odm1fY29weSgKICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KHAs IGJ1ZiwgY291bnQpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg bWVtc2V0KHAsIDAsIGNvdW50KTsKLSAgICAgICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShj dXJyLT5kb21haW4sIHBhZ2VfdG9fbWZuKHBhZ2UpKTsKKyAgICAgICAgICAgICAgICBwYWdpbmdf bWFya19kaXJ0eShjdXJyLT5kb21haW4sIF9tZm4ocGFnZV90b19tZm4ocGFnZSkpKTsKICAgICAg ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlCkBAIC01Nzk5LDcgKzU3OTksNyBAQCBs b25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZv aWQpIGFyZykKICAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBwZm4sIE5V TEwsIFAyTV9VTlNIQVJFKTsKICAgICAgICAgICAgIGlmICggcGFnZSApCiAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgcGFnZV90b19tZm4ocGFnZSkp OworICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIF9tZm4ocGFnZV90b19tZm4o cGFnZSkpKTsKICAgICAgICAgICAgICAgICAvKiBUaGVzZSBhcmUgbW9zdCBwcm9iYWJseSBub3Qg cGFnZSB0YWJsZXMgYW55IG1vcmUgKi8KICAgICAgICAgICAgICAgICAvKiBkb24ndCB0YWtlIGEg bG9uZyB0aW1lIGFuZCBkb24ndCBkaWUgZWl0aGVyICovCiAgICAgICAgICAgICAgICAgc2hfcmVt b3ZlX3NoYWRvd3MoZCwgX21mbihwYWdlX3RvX21mbihwYWdlKSksIDEsIDApOwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCmlu ZGV4IDg4MDcxYWIuLmUxMTIzZGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEu YworKysgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0 aWMgaW50IGh2bV9hZGRfaW9yZXFfZ21mbigKICAgICByYyA9IGd1ZXN0X3BoeXNtYXBfYWRkX3Bh Z2UoZCwgX2dmbihpb3JwLT5nbWZuKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg X21mbihwYWdlX3RvX21mbihpb3JwLT5wYWdlKSksIDApOwogICAgIGlmICggcmMgPT0gMCApCi0g ICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIHBhZ2VfdG9fbWZuKGlvcnAtPnBhZ2UpKTsKKyAg ICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgX21mbihwYWdlX3RvX21mbihpb3JwLT5wYWdlKSkp OwogCiAgICAgcmV0dXJuIHJjOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94 ZW4vYXJjaC94ODYvbW0uYwppbmRleCBjNWRkNmYyLi4yNGE1MjExIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMjI1MSw3ICsyMjUxLDcg QEAgc3RhdGljIGludCBhbGxvY19wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5z aWduZWQgbG9uZyB0eXBlLAogCiAgICAgLyogQSBwYWdlIHRhYmxlIGlzIGRpcnRpZWQgd2hlbiBp dHMgdHlwZSBjb3VudCBiZWNvbWVzIG5vbi16ZXJvLiAqLwogICAgIGlmICggbGlrZWx5KG93bmVy ICE9IE5VTEwpICkKLSAgICAgICAgcGFnaW5nX21hcmtfZGlydHkob3duZXIsIHBhZ2VfdG9fbWZu KHBhZ2UpKTsKKyAgICAgICAgcGFnaW5nX21hcmtfZGlydHkob3duZXIsIF9tZm4ocGFnZV90b19t Zm4ocGFnZSkpKTsKIAogICAgIHN3aXRjaCAoIHR5cGUgJiBQR1RfdHlwZV9tYXNrICkKICAgICB7 CkBAIC0yMzI1LDcgKzIzMjUsNyBAQCBpbnQgZnJlZV9wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5m byAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgIGlmICggbGlrZWx5KG93bmVyICE9IE5V TEwpICYmIHVubGlrZWx5KHBhZ2luZ19tb2RlX2VuYWJsZWQob3duZXIpKSApCiAgICAgewogICAg ICAgICAvKiBBIHBhZ2UgdGFibGUgaXMgZGlydGllZCB3aGVuIGl0cyB0eXBlIGNvdW50IGJlY29t ZXMgemVyby4gKi8KLSAgICAgICAgcGFnaW5nX21hcmtfZGlydHkob3duZXIsIHBhZ2VfdG9fbWZu KHBhZ2UpKTsKKyAgICAgICAgcGFnaW5nX21hcmtfZGlydHkob3duZXIsIF9tZm4ocGFnZV90b19t Zm4ocGFnZSkpKTsKIAogICAgICAgICBpZiAoIHNoYWRvd19tb2RlX3JlZmNvdW50cyhvd25lcikg KQogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0zMjQ3LDcgKzMyNDcsNyBAQCBsb25nIGRvX21t dWV4dF9vcCgKICAgICAgICAgICAgICAgICBnb3RvIHBpbl9kcm9wOwogCiAgICAgICAgICAgICAv KiBBIHBhZ2UgaXMgZGlydGllZCB3aGVuIGl0cyBwaW4gc3RhdHVzIGlzIHNldC4gKi8KLSAgICAg ICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KHBnX293bmVyLCBwYWdlX3RvX21mbihwYWdlKSk7Cisg ICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShwZ19vd25lciwgX21mbihwYWdlX3RvX21mbihw YWdlKSkpOwogCiAgICAgICAgICAgICAvKiBXZSBjYW4gcmFjZSBkb21haW4gZGVzdHJ1Y3Rpb24g KGRvbWFpbl9yZWxpbnF1aXNoX3Jlc291cmNlcykuICovCiAgICAgICAgICAgICBpZiAoIHVubGlr ZWx5KHBnX293bmVyICE9IGQpICkKQEAgLTMzMDcsNyArMzMwNyw3IEBAIGxvbmcgZG9fbW11ZXh0 X29wKAogICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CiAKICAgICAgICAgICAgIC8qIEEgcGFn ZSBpcyBkaXJ0aWVkIHdoZW4gaXRzIHBpbiBzdGF0dXMgaXMgY2xlYXJlZC4gKi8KLSAgICAgICAg ICAgIHBhZ2luZ19tYXJrX2RpcnR5KHBnX293bmVyLCBwYWdlX3RvX21mbihwYWdlKSk7CisgICAg ICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShwZ19vd25lciwgX21mbihwYWdlX3RvX21mbihwYWdl KSkpOwogCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzUxNiw3ICszNTE2LDcg QEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8qIEEg cGFnZSBpcyBkaXJ0aWVkIHdoZW4gaXQncyBiZWluZyBjbGVhcmVkLiAqLwotICAgICAgICAgICAg cGFnaW5nX21hcmtfZGlydHkocGdfb3duZXIsIHBhZ2VfdG9fbWZuKHBhZ2UpKTsKKyAgICAgICAg ICAgIHBhZ2luZ19tYXJrX2RpcnR5KHBnX293bmVyLCBfbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSk7 CiAKICAgICAgICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKF9tZm4ocGFnZV90b19tZm4ocGFnZSkp KTsKIApAQCAtMzU1MSw3ICszNTUxLDcgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAg ICB9CiAKICAgICAgICAgICAgIC8qIEEgcGFnZSBpcyBkaXJ0aWVkIHdoZW4gaXQncyBiZWluZyBj b3BpZWQgdG8uICovCi0gICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShwZ19vd25lciwgcGFn ZV90b19tZm4oZHN0X3BhZ2UpKTsKKyAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KHBnX293 bmVyLCBfbWZuKHBhZ2VfdG9fbWZuKGRzdF9wYWdlKSkpOwogCiAgICAgICAgICAgICBjb3B5X2Rv bWFpbl9wYWdlKF9tZm4ocGFnZV90b19tZm4oZHN0X3BhZ2UpKSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX21mbihwYWdlX3RvX21mbihzcmNfcGFnZSkpKTsKQEAgLTM4OTQsNyArMzg5 NCw3IEBAIGxvbmcgZG9fbW11X3VwZGF0ZSgKIAogICAgICAgICAgICAgc2V0X2dwZm5fZnJvbV9t Zm4obWZuLCBncGZuKTsKIAotICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkocGdfb3duZXIs IG1mbik7CisgICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShwZ19vd25lciwgX21mbihtZm4p KTsKIAogICAgICAgICAgICAgcHV0X3BhZ2UobWZuX3RvX3BhZ2UobWZuKSk7CiAgICAgICAgICAg ICBicmVhazsKQEAgLTQ3MDAsNyArNDcwMCw3IEBAIGxvbmcgZG9fdXBkYXRlX2Rlc2NyaXB0b3Io dTY0IHBhLCB1NjQgZGVzYykKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgcGFnaW5nX21h cmtfZGlydHkoZG9tLCBtZm4pOworICAgIHBhZ2luZ19tYXJrX2RpcnR5KGRvbSwgX21mbihtZm4p KTsKIAogICAgIC8qIEFsbCBpcyBnb29kIHNvIG1ha2UgdGhlIHVwZGF0ZS4gKi8KICAgICBnZHRf cGVudCA9IG1hcF9kb21haW5fcGFnZShfbWZuKG1mbikpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L21tL2d1ZXN0X3dhbGsuYyBiL3hlbi9hcmNoL3g4Ni9tbS9ndWVzdF93YWxrLmMKaW5kZXgg ODY4ZTkwOS4uMjUwYTJiMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsu YworKysgYi94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fsay5jCkBAIC0zOTYsMjEgKzM5NiwyMSBA QCBndWVzdF93YWxrX3RhYmxlcyhzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IHAybV9kb21haW4gKnAy bSwKICAgICB7CiAjaWYgR1VFU1RfUEFHSU5HX0xFVkVMUyA9PSA0IC8qIDY0LWJpdCBvbmx5Li4u ICovCiAgICAgICAgIGlmICggc2V0X2FkX2JpdHMobDRwICsgZ3Vlc3RfbDRfdGFibGVfb2Zmc2V0 KHZhKSwgJmd3LT5sNGUsIDApICkKLSAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIG1m bl94KGd3LT5sNG1mbikpOworICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgZ3ctPmw0 bWZuKTsKICAgICAgICAgaWYgKCBzZXRfYWRfYml0cyhsM3AgKyBndWVzdF9sM190YWJsZV9vZmZz ZXQodmEpLCAmZ3ctPmwzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAocHNlMUcgJiYgKHBm ZWMgJiBQRkVDX3dyaXRlX2FjY2VzcykpKSApCi0gICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0 eShkLCBtZm5feChndy0+bDNtZm4pKTsKKyAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQs IGd3LT5sM21mbik7CiAjZW5kaWYKICAgICAgICAgaWYgKCAhcHNlMUcgKSAKICAgICAgICAgewog ICAgICAgICAgICAgaWYgKCBzZXRfYWRfYml0cyhsMnAgKyBndWVzdF9sMl90YWJsZV9vZmZzZXQo dmEpLCAmZ3ctPmwyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBzZTJNICYmIChw ZmVjICYgUEZFQ193cml0ZV9hY2Nlc3MpKSkgKQotICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJr X2RpcnR5KGQsIG1mbl94KGd3LT5sMm1mbikpOyAgICAgICAgICAgIAorICAgICAgICAgICAgICAg IHBhZ2luZ19tYXJrX2RpcnR5KGQsIGd3LT5sMm1mbik7CiAgICAgICAgICAgICBpZiAoICFwc2Uy TSApIAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlmICggc2V0X2FkX2JpdHMobDFw ICsgZ3Vlc3RfbDFfdGFibGVfb2Zmc2V0KHZhKSwgJmd3LT5sMWUsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHBmZWMgJiBQRkVDX3dyaXRlX2FjY2VzcykpICkKLSAgICAgICAg ICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgbWZuX3goZ3ctPmwxbWZuKSk7CisgICAg ICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIGd3LT5sMW1mbik7CiAgICAgICAg ICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vbWVt X3NoYXJpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCmluZGV4IDI1ZmY2YTYu LmRiN2YzODkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCisrKyBi L3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCkBAIC0xMjEwLDcgKzEyMTAsNyBAQCBpbnQg X19tZW1fc2hhcmluZ191bnNoYXJlX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKIAogICAgIC8qIE5v dyB0aGF0IHRoZSBnZm48LT5tZm4gbWFwIGlzIHByb3Blcmx5IGVzdGFibGlzaGVkLAogICAgICAq IG1hcmtpbmcgZGlydHkgaXMgZmVhc2libGUgKi8KLSAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBt Zm5feChwYWdlX3RvX21mbihwYWdlKSkpOworICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIHBhZ2Vf dG9fbWZuKHBhZ2UpKTsKICAgICAvKiBXZSBkbyBub3QgbmVlZCB0byB1bmxvY2sgYSBwcml2YXRl IHBhZ2UgKi8KICAgICBwdXRfZ2ZuKGQsIGdmbik7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvbW0vcDJtLXBvZC5jIGIveGVuL2FyY2gveDg2L21tL3AybS1wb2QuYwpp bmRleCAxNDlmNTI5Li4zNjdlZTAwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXBv ZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMKQEAgLTExMTIsNyArMTExMiw3IEBA IHAybV9wb2RfZGVtYW5kX3BvcHVsYXRlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVk IGxvbmcgZ2ZuLAogICAgIGZvciggaSA9IDA7IGkgPCAoMVVMIDw8IG9yZGVyKTsgaSsrICkKICAg ICB7CiAgICAgICAgIHNldF9ncGZuX2Zyb21fbWZuKG1mbl94KG1mbikgKyBpLCBnZm5fYWxpZ25l ZCArIGkpOwotICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBtZm5feChtZm4pICsgaSk7Cisg ICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIG1mbl9hZGQobWZuLCBpKSk7CiAgICAgfQogICAg IAogICAgIHAybS0+cG9kLmVudHJ5X2NvdW50IC09ICgxIDw8IG9yZGVyKTsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYwppbmRl eCA0NDM3NjExLi4zYTY2MDk4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMK KysrIGIveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCkBAIC0zNDMsMTIgKzM0Myw5IEBAIHZvaWQg cGFnaW5nX21hcmtfZ2ZuX2RpcnR5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgcGZu KQogfQogCiAvKiBNYXJrIGEgcGFnZSBhcyBkaXJ0eSAqLwotdm9pZCBwYWdpbmdfbWFya19kaXJ0 eShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGd1ZXN0X21mbikKK3ZvaWQgcGFnaW5n X21hcmtfZGlydHkoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgZ21mbikKIHsKICAgICB1bnNpZ25l ZCBsb25nIHBmbjsKLSAgICBtZm5fdCBnbWZuOwotCi0gICAgZ21mbiA9IF9tZm4oZ3Vlc3RfbWZu KTsKIAogICAgIGlmICggIXBhZ2luZ19tb2RlX2xvZ19kaXJ0eShkKSB8fCAhbWZuX3ZhbGlkKGdt Zm4pIHx8CiAgICAgICAgICBwYWdlX2dldF9vd25lcihtZm5fdG9fcGFnZShnbWZuKSkgIT0gZCAp CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVuL2FyY2gv eDg2L21tL3NoYWRvdy9jb21tb24uYwppbmRleCAwYmE0MTUzLi4xMjZkZmE4IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvY29tbW9uLmMKQEAgLTk5OSw3ICs5OTksNyBAQCBzaF92YWxpZGF0ZV9ndWVzdF9lbnRy eShzdHJ1Y3QgdmNwdSAqdiwgbWZuX3QgZ21mbiwgdm9pZCAqZW50cnksIHUzMiBzaXplKQogICAg IGludCByZXN1bHQgPSAwOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBtZm5fdG9fcGFn ZShnbWZuKTsKIAotICAgIHBhZ2luZ19tYXJrX2RpcnR5KHYtPmRvbWFpbiwgbWZuX3goZ21mbikp OworICAgIHBhZ2luZ19tYXJrX2RpcnR5KHYtPmRvbWFpbiwgZ21mbik7CiAKICAgICAvLyBEZXRl cm1pbmUgd2hpY2ggdHlwZXMgb2Ygc2hhZG93cyBhcmUgYWZmZWN0ZWQsIGFuZCB1cGRhdGUgZWFj aC4KICAgICAvLwpAQCAtMTgxOCwxMSArMTgxOCwxMSBAQCB2b2lkIHNoX2VtdWxhdGVfdW5tYXBf ZGVzdChzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqYWRkciwgdW5zaWduZWQgaW50IGJ5dGVzLAogICAg ICAgICAgICAgc2hfdmFsaWRhdGVfZ3Vlc3RfcHRfd3JpdGUodiwgc2hfY3R4dC0+bWZuWzFdLCBh ZGRyICsgYjEsIGIyKTsKICAgICB9CiAKLSAgICBwYWdpbmdfbWFya19kaXJ0eSh2LT5kb21haW4s IG1mbl94KHNoX2N0eHQtPm1mblswXSkpOworICAgIHBhZ2luZ19tYXJrX2RpcnR5KHYtPmRvbWFp biwgc2hfY3R4dC0+bWZuWzBdKTsKIAogICAgIGlmICggdW5saWtlbHkobWZuX3ZhbGlkKHNoX2N0 eHQtPm1mblsxXSkpICkKICAgICB7Ci0gICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KHYtPmRvbWFp biwgbWZuX3goc2hfY3R4dC0+bWZuWzFdKSk7CisgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KHYt PmRvbWFpbiwgc2hfY3R4dC0+bWZuWzFdKTsKICAgICAgICAgdnVubWFwKCh2b2lkICopKCh1bnNp Z25lZCBsb25nKWFkZHIgJiBQQUdFX01BU0spKTsKICAgICB9CiAgICAgZWxzZQpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRv dy9tdWx0aS5jCmluZGV4IDMzNmQyNGYuLjgwNWMwNTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvbXVsdGkuYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMK QEAgLTY3NSw3ICs2NzUsNyBAQCBfc2hfcHJvcGFnYXRlKHN0cnVjdCB2Y3B1ICp2LAogICAgIHsK ICAgICAgICAgaWYgKCBtZm5fdmFsaWQodGFyZ2V0X21mbikgKSB7CiAgICAgICAgICAgICBpZiAo IGZ0ICYgRkVUQ0hfVFlQRV9XUklURSApCi0gICAgICAgICAgICAgICAgcGFnaW5nX21hcmtfZGly dHkoZCwgbWZuX3godGFyZ2V0X21mbikpOworICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJrX2Rp cnR5KGQsIHRhcmdldF9tZm4pOwogICAgICAgICAgICAgZWxzZSBpZiAoICFwYWdpbmdfbWZuX2lz X2RpcnR5KGQsIHRhcmdldF9tZm4pICkKICAgICAgICAgICAgICAgICBzZmxhZ3MgJj0gfl9QQUdF X1JXOwogICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3RtZW1feGVuLmMgYi94ZW4v Y29tbW9uL3RtZW1feGVuLmMKaW5kZXggODRhZTdmZC4uN2Q2MGI3MSAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi90bWVtX3hlbi5jCisrKyBiL3hlbi9jb21tb24vdG1lbV94ZW4uYwpAQCAtODAsNyAr ODAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2xpX3B1dF9wYWdlKHZvaWQgKmNsaV92YSwgc3Ry dWN0IHBhZ2VfaW5mbyAqY2xpX3BmcCwKICAgICBpZiAoIG1hcmtfZGlydHkgKQogICAgIHsKICAg ICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUoY2xpX3BmcCk7Ci0gICAgICAgIHBhZ2luZ19tYXJrX2Rp cnR5KGN1cnJlbnQtPmRvbWFpbixjbGlfbWZuKTsKKyAgICAgICAgcGFnaW5nX21hcmtfZGlydHko Y3VycmVudC0+ZG9tYWluLCBfbWZuKGNsaV9tZm4pKTsKICAgICB9CiAgICAgZWxzZQogICAgICAg ICBwdXRfcGFnZShjbGlfcGZwKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Jh bnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaAppbmRleCA4Yzli YmNmLi5lMWIzMzkxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxl LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oCkBAIC00Niw3ICs0Niw3 IEBAIGludCByZXBsYWNlX2dyYW50X2hvc3RfbWFwcGluZygKICNkZWZpbmUgZ250dGFiX3N0YXR1 c19nbWZuKGQsIHQsIGkpICAgICAgICAgICAgICAgICAgICAgXAogICAgIChtZm5fdG9fZ21mbihk LCBnbnR0YWJfc3RhdHVzX21mbih0LCBpKSkpCiAKLSNkZWZpbmUgZ250dGFiX21hcmtfZGlydHko ZCwgZikgcGFnaW5nX21hcmtfZGlydHkoKGQpLCAoZikpCisjZGVmaW5lIGdudHRhYl9tYXJrX2Rp cnR5KGQsIGYpIHBhZ2luZ19tYXJrX2RpcnR5KChkKSwgX21mbihmKSkKIAogc3RhdGljIGlubGlu ZSB2b2lkIGdudHRhYl9jbGVhcl9mbGFnKHVuc2lnbmVkIGludCBuciwgdWludDE2X3QgKnN0KQog ewpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdpbmcuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvcGFnaW5nLmgKaW5kZXggMjI0M2FhMS4uNjNlMzg2NyAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9wYWdpbmcuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2lu Zy5oCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBwYWdpbmdfbG9nX2RpcnR5X2luaXQoc3RydWN0 IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpjbGVhbl9kaXJ0 eV9iaXRtYXApKHN0cnVjdCBkb21haW4gKmQpKTsKIAogLyogbWFyayBhIHBhZ2UgYXMgZGlydHkg Ki8KLXZvaWQgcGFnaW5nX21hcmtfZGlydHkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBndWVzdF9tZm4pOwordm9pZCBwYWdpbmdfbWFya19kaXJ0eShzdHJ1Y3QgZG9tYWluICpkLCBt Zm5fdCBnbWZuKTsKIC8qIG1hcmsgYSBwYWdlIGFzIGRpcnR5IHdpdGggdGFraW5nIGd1ZXN0IHBm biBhcyBwYXJhbWV0ZXIgKi8KIHZvaWQgcGFnaW5nX21hcmtfZ2ZuX2RpcnR5KHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgcGZuKTsKIAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK