From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruno Alvisio Subject: [PATCH RFC v3 RESEND 07/12] Migration with Local Disks Mirroring: Added new libxl_read_stream and callbacks in restore flow Date: Sat, 23 Dec 2017 14:03:31 +0000 Message-ID: <1514037816-40864-8-git-send-email-bruno.alvisio@gmail.com> References: <1514037816-40864-1-git-send-email-bruno.alvisio@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1514037816-40864-1-git-send-email-bruno.alvisio@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org, wei.liu2@citrix.com, dave@recoil.org, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org Rm9yIG1pZ3JhdGlvbiB3aXRoIGxvY2FsIGRpc2tzIG1pcnJvcmluZyBhIFFFTVUgTkJEIHNlcnZl ciBpcyBzdGFydGVkIHdoaWxlCnJlc3RvcmluZyB0aGUgZG9tYWluLiBUaGlzIHNlcnZlciB3aWxs IGJlIHJlc3BvbnNpYmxlIGZvciByZWNlaXZpbmcgdGhlIGRpc2tzCnNlbnQgZnJvbSB0aGUgc291 cmNlIG5vZGU6IFRoZSBkaXNrcyB0cmFuc2ZlciB3aWxsIGJlIHRyaWdnZXJlZCBkdXJpbmcgdGhl CmRvbWFpbiBzYXZlIG9uIHRoZSBzb3VyY2UgdXNpbmcgdGhlIFFNUCBkcml2ZS1taXJyb3IgY29t bWFuZC4KCkEgc2Vjb25kIGxpYnhsX3JlYWRfc3RyZWFtIGlzIGNyZWF0ZWQgKHNyc19taXJyb3Jf ZGlza3MpOiBEdXJpbmcgZG9tYWluIHJlc3RvcmUKdGhlIGZpcnN0IGxpYnhjIHN0cmVhbSB0cmFu c2ZlcnMgdGhlIG5lY2Vzc2FyeSBQRk5zIGFuZCBwYXJhbXMgb25seSBzbyB0aGF0IHRoZQpRRU1V IHByb2Nlc3MgYW5kIE5CRCBzZXJ2ZXIgY2FuIGJlIHN0YXJ0ZWQuIEFmdGVyIHRoZSBkaXNrIG1p cnJvcmluZyBqb2JzIGFyZQpjb21wbGV0ZWQgdGhlIHNlY29uZCBsaWJ4bF9yZWFkX3N0cmVhbSBp cyBzdGFydGVkIGFuZCB0aGUgdmlydHVhbCBSQU0gaXMKdHJhbnNmZXJyZWQuCgpJbiB0aGUgbWln cmF0aW9uIHdpdGggZGlza3MgbWlycm9yaW5nIGNhc2U6CjEuIGRvbWNyZWF0ZV9kZXZtb2RlbF9k ZWZlcnJlZF9zdGFydGVkIGlzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgbGF1bmNoX2RtCgoy LiBkb21jcmVhdGVfc3RyZWFtX2RvbmUgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUg ZW5kIG9mIDFzdApsaWJ4bF9yZWFkX3N0cmVhbQoKMy4gZG9tY3JlYXRlX3Bvc3RfbWlycm9yX2Rp c2tzX3N0cmVhbV9kb25lIGlzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIDJuZApsaWJ4 bF9yZWFkX3N0cmVhbQoKVGhlIG9yaWdpbmFsIGxpYnhsX2NyZWF0ZSBjYWxsaW5nIHNlcXVlbmNl OgoxLiBkb21jcmVhdGVfYm9vdGxvYWRlcl9kb25lCjIuIGxpYnhsL2xpYnhjIHN0cmVhbQozLiBk b21jcmVhdGVfc3RyZWFtX2RvbmUKNC4gZG9tY3JlYXRlX3ByZV9idWlsZAo1LiBkb21jcmVhdGVf cmVidWlsZF9kb25lCjYuIGRvbWNyZWF0ZV9tdWx0aWRldl9iZWdpbgo3LiBkb21jcmVhdGVfbGF1 bmNoX2RtCjguIGRvbWNyZWF0ZV9kZXZtb2RlbF9zdGFydGVkCgpJbiB0aGUgY2FzZSBvZiBtaWdy YXRpb24gd2l0aCBsb2NhbCBkaXNrIG1pcnJvcmluZyB0aGUgc2VxdWVuY2UgYmVjb21lczoKCjEu IGRvbWNyZWF0ZV9ib290bG9hZGVyX2RvbmUKMi4gcHJlIG1pcnJvciBkaXNrIGxpYnhsL2xpYnhj IHN0cmVhbTogVHJhbnNmZXJzIFBGTnMvcGFyYW1zIG5lY2Vzc2FyeSBmb3IKUUVNVSBpbml0aWxp emF0aW9uCjMuIGRvbWNyZWF0ZV9zdHJlYW1fZG9uZQo0LiBkb21jcmVhdGVfcHJlX2J1aWxkCjUu IGRvbWNyZWF0ZV9yZWJ1aWxkX2RvbmUKNi4gZG9tY3JlYXRlX211bHRpZGV2X2JlZ2luCjcuIGRv bWNyZWF0ZV9sYXVuY2hfZG06IFN0YXJ0cyBRRU1VIHdpdGggIi1pbmNvbWluZyBkZWZlciBvcHRp b24iCjguIGRvbWNyZWF0ZV9kZXZtb2RlbF9kZWZlcnJlZF9zdGFydGVkOiBTdGFydHMgTkJEIHNl cnZlciBmb3IgZGlza3MgbWlycm9yaW5nCjkuIHBvc3QgbWlycm9yIGRpc2tzIGxpYnhsL2xpYnhj IHN0cmVhbTogVHJhbnNmZXJzIGFsbCB2aXJ0dWFsIFJBTTogU2ltaWxhciB0bwpvcmlnaW5hbCBz dHJlYW0KMTAuIGRvbWNyZWF0ZV9wb3N0X21pcnJvcl9kaXNrc19zdGVhbV9kb25lOiBSZXN1bWVz IFFFTVUgcHJvY2VzcyBieQpleGVjdXRpbmcgUU1QICJtaWdyYXRlLWluY29taW5nIiBjb21tYW5k CjExLiBkb21jcmVhdGVfZGV2bW9kZWxfc3RhcnRlZAoKU2lnbmVkLW9mZi1ieTogQnJ1bm8gQWx2 aXNpbyA8YnJ1bm8uYWx2aXNpb0BnbWFpbC5jb20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGwuaCAg ICAgICAgICB8ICAgNiArKysKIHRvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jICAgfCAxMTcgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogdG9vbHMvbGlieGwvbGli eGxfaW50ZXJuYWwuaCB8ICAgMiArCiAzIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCsp LCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29s cy9saWJ4bC9saWJ4bC5oCmluZGV4IDI1MjQ1Y2MuLmFmMmFhOWEgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnhsL2xpYnhsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtMTQ1Myw2ICsxNDUz LDEyIEBAIGludCBsaWJ4bF9kb21haW5fc3VzcGVuZChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3Qg ZG9taWQsIGludCBmZCwgaW50IHJlY3ZfZmQsCiAjZGVmaW5lIExJQlhMX1NVU1BFTkRfTElWRSAy CiAjZGVmaW5lIExJQlhMX1NVU1BFTkRfTUlSUk9SX0RJU0tTIDQKIAorI2RlZmluZSBEUklWRV9N SVJST1JfUE9SVCAiMTEwMDAiCisjZGVmaW5lIERSSVZFX01JUlJPUl9ERVZJQ0UgImlkZTAtaGQw IgorCitzdGF0aWMgY29uc3QgY2hhciBuYmRfc2VydmVyX3N0YXJ0ZWRfYmFubmVyW109CisgICAg Im5iZCBzZXJ2ZXIgc3RhcnRlZCBvbiBzb3VyY2UsIHN0YXJ0IG1pcnJvciBqb2IuXG4iOworCiAv KiBAcGFyYW0gc3VzcGVuZF9jYW5jZWwgW2Zyb20geGVuY3RybC5oOnhjX2RvbWFpbl9yZXN1bWUo IEBwYXJhbSBmYXN0ICldCiAgKiAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUsIHVzZSBjby1v cGVyYXRpdmUgcmVzdW1lLiBUaGUgZ3Vlc3QKICAqICAgbXVzdCBzdXBwb3J0IHRoaXMuCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Ny ZWF0ZS5jCmluZGV4IDk1OTc4YTguLmY4MzQyODIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsX2NyZWF0ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCkBAIC03NjEsNiAr NzYxLDkgQEAgc3RhdGljIGludCBzdG9yZV9saWJ4bF9lbnRyeShsaWJ4bF9fZ2MgKmdjLCB1aW50 MzJfdCBkb21pZCwKIHN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9kZXZtb2RlbF9zdGFydGVkKGxpYnhs X19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X19kbV9zcGF3bl9zdGF0ZSAqZG1zcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCByYyk7CitzdGF0aWMgdm9pZCBkb21jcmVhdGVfZGV2bW9kZWxfZGVmZXJyZWRf c3RhcnRlZChsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWJ4bF9fZG1fc3Bhd25fc3RhdGUgKmRtc3MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmV0KTsKIHN0YXRpYyB2 b2lkIGRvbWNyZWF0ZV9ib290bG9hZGVyX2NvbnNvbGVfYXZhaWxhYmxlKGxpYnhsX19lZ2MgKmVn YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX19ib290bG9hZGVyX3N0YXRlICpibCk7CiBzdGF0aWMgdm9pZCBkb21jcmVhdGVfYm9vdGxv YWRlcl9kb25lKGxpYnhsX19lZ2MgKmVnYywKQEAgLTc3Nyw2ICs3ODAsMTAgQEAgc3RhdGljIHZv aWQgZG9tY3JlYXRlX3N0cmVhbV9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgKnNycywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmV0KTsKIAorc3RhdGljIHZvaWQgZG9t Y3JlYXRlX3Bvc3RfbWlycm9yX2Rpc2tzX3N0cmVhbV9kb25lKGxpYnhsX19lZ2MgKmVnYywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f c3RyZWFtX3JlYWRfc3RhdGUgKnNycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgcmV0KTsKKwogc3RhdGljIHZvaWQgZG9tY3JlYXRlX3Jl YnVpbGRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlICpkY3MsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCByZXQpOwpAQCAtMTAzNiw2ICsxMDQzLDQ4IEBAIHN0YXRp YyB2b2lkIGxpYnhsX19jb2xvX3Jlc3RvcmVfc2V0dXBfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAg ICAgbGlieGxfX3N0cmVhbV9yZWFkX3N0YXJ0KGVnYywgJmRjcy0+c3JzKTsKIH0KIAorc3RhdGlj IHZvaWQgZG9tY3JlYXRlX2Rldm1vZGVsX2RlZmVycmVkX3N0YXJ0ZWQobGlieGxfX2VnYyAqZWdj LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf X2RtX3NwYXduX3N0YXRlICpkbXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHJldCkKK3sKKyAgICBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9zdGF0 ZSAqZGNzID0gQ09OVEFJTkVSX09GKGRtc3MsICpkY3MsIHNkc3MuZG0pOworICAgIFNUQVRFX0FP X0dDKGRtc3MtPnNwYXduLmFvKTsKKyAgICBjb25zdCB1aW50MzJfdCBkb21pZCA9IGRjcy0+Z3Vl c3RfZG9taWQ7CisgICAgZGNzLT5zZHNzLmRtLmd1ZXN0X2RvbWlkID0gZG9taWQ7CisKKyAgICBp ZiAocmV0KSB7CisgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiZGV2aWNlIG1vZGVsIGRpZCBu b3Qgc3RhcnQ6ICVkIiwgcmV0KTsKKyAgICAgICAgZ290byBlcnJvcl9vdXQ7CisgICAgfQorCisg ICAgcmV0ID0gbGlieGxfX3FtcF9uYmRfc2VydmVyX3N0YXJ0KGdjLCBkb21pZCwgIjo6IiwgRFJJ VkVfTUlSUk9SX1BPUlQpOworICAgIGlmIChyZXQpIHsKKyAgICAgICAgTE9HRChFUlJPUiwgZG9t aWQsICJGYWlsZWQgdG8gc3RhcnQgTkJEIFNlcnZlciIpOworICAgICAgICBnb3RvIGVycm9yX291 dDsKKyAgICB9CisKKyAgICByZXQgPSBsaWJ4bF9fcW1wX25iZF9zZXJ2ZXJfYWRkKGdjLCBkb21p ZCwgRFJJVkVfTUlSUk9SX0RFVklDRSk7CisgICAgaWYgKHJldCkgeworICAgICAgICBMT0dEKEVS Uk9SLCBkb21pZCwgIkZhaWxlZCB0byBhZGQgTkJEIFNlcnZlciIpOworICAgICAgICBnb3RvIGVy cm9yX291dDsKKyAgICB9CisKKyAgICByZXQgPSBsaWJ4bF93cml0ZV9leGFjdGx5KENUWCwgZGNz LT5zZW5kX2JhY2tfZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYmRfc2VydmVy X3N0YXJ0ZWRfYmFubmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKG5i ZF9zZXJ2ZXJfc3RhcnRlZF9iYW5uZXIpLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAibWlncmF0aW9uIHN0cmVhbSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmJk IHNlcnZlciBzdWNjZXNzL2ZhaWx1cmUgcmVwb3J0Iik7CisgICAgaWYgKHJldCkKKyAgICAgICAg Z290byBlcnJvcl9vdXQ7CisKKyAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhcnQoZWdjLCAmZGNz LT5zcnMpOworICAgIHJldHVybjsKKworZXJyb3Jfb3V0OgorICAgIGFzc2VydChyZXQpOworICAg IGRvbWNyZWF0ZV9jb21wbGV0ZShlZ2MsIGRjcywgcmV0KTsKK30KKwogc3RhdGljIHZvaWQgZG9t Y3JlYXRlX2Jvb3Rsb2FkZXJfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19ib290bG9hZGVyX3N0YXRlICpibCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKQpAQCAtMTA1Myw2ICsxMTAy LDggQEAgc3RhdGljIHZvaWQgZG9tY3JlYXRlX2Jvb3Rsb2FkZXJfZG9uZShsaWJ4bF9fZWdjICpl Z2MsCiAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmNvbnN0IGluZm8gPSAmZF9jb25maWct PmJfaW5mbzsKICAgICBsaWJ4bF9fc3JtX3Jlc3RvcmVfYXV0b2dlbl9jYWxsYmFja3MgKmNvbnN0 IGNhbGxiYWNrcyA9CiAgICAgICAgICZkY3MtPnNycy5zaHMuY2FsbGJhY2tzLnJlc3RvcmUuYTsK KyAgICBsaWJ4bF9fc3JtX3Jlc3RvcmVfYXV0b2dlbl9jYWxsYmFja3MgKmNvbnN0IGNhbGxiYWNr c19taXJyb3JfZGlza3MgPQorICAgICAgICAmZGNzLT5zcnNfbWlycm9yX2Rpc2tzLnNocy5jYWxs YmFja3MucmVzdG9yZS5hOwogCiAgICAgaWYgKHJjKSB7CiAgICAgICAgIGRvbWNyZWF0ZV9yZWJ1 aWxkX2RvbmUoZWdjLCBkY3MsIHJjKTsKQEAgLTEwNzAsOCArMTEyMSwxNCBAQCBzdGF0aWMgdm9p ZCBkb21jcmVhdGVfYm9vdGxvYWRlcl9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICBkY3MtPnNk c3MuZG0uc3Bhd24uYW8gPSBhbzsKICAgICBkY3MtPnNkc3MuZG0uZ3Vlc3RfY29uZmlnID0gZGNz LT5ndWVzdF9jb25maWc7CiAgICAgZGNzLT5zZHNzLmRtLmJ1aWxkX3N0YXRlID0gJmRjcy0+YnVp bGRfc3RhdGU7Ci0gICAgZGNzLT5zZHNzLmRtLmNhbGxiYWNrID0gZG9tY3JlYXRlX2Rldm1vZGVs X3N0YXJ0ZWQ7Ci0gICAgZGNzLT5zZHNzLmNhbGxiYWNrID0gZG9tY3JlYXRlX2Rldm1vZGVsX3N0 YXJ0ZWQ7CisgICAgZGNzLT5zZHNzLmRtLm1pcnJvcl9kaXNrcyA9IGRjcy0+bWlycm9yX2Rpc2tz OworICAgIGlmICghZGNzLT5taXJyb3JfZGlza3MpIHsKKyAgICAgICAgZGNzLT5zZHNzLmRtLmNh bGxiYWNrID0gZG9tY3JlYXRlX2Rldm1vZGVsX3N0YXJ0ZWQ7CisgICAgICAgIGRjcy0+c2Rzcy5j YWxsYmFjayA9IGRvbWNyZWF0ZV9kZXZtb2RlbF9zdGFydGVkOworICAgIH0gZWxzZSB7CisgICAg ICAgIGRjcy0+c2Rzcy5kbS5jYWxsYmFjayA9IGRvbWNyZWF0ZV9kZXZtb2RlbF9kZWZlcnJlZF9z dGFydGVkOworICAgICAgICBkY3MtPnNkc3MuY2FsbGJhY2sgPSBkb21jcmVhdGVfZGV2bW9kZWxf ZGVmZXJyZWRfc3RhcnRlZDsKKyAgICB9CiAKICAgICBpZiAocmVzdG9yZV9mZCA8IDAgJiYgZGNz LT5kb21pZF9zb2Z0X3Jlc2V0ID09IElOVkFMSURfRE9NSUQpIHsKICAgICAgICAgcmMgPSBsaWJ4 bF9fZG9tYWluX2J1aWxkKGdjLCBkX2NvbmZpZywgZG9taWQsIHN0YXRlKTsKQEAgLTEwODEsNiAr MTEzOCw3IEBAIHN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9ib290bG9hZGVyX2RvbmUobGlieGxfX2Vn YyAqZWdjLAogCiAgICAgLyogUmVzdG9yZSAqLwogICAgIGNhbGxiYWNrcy0+cmVzdG9yZV9yZXN1 bHRzID0gbGlieGxfX3NybV9jYWxsb3V0X2NhbGxiYWNrX3Jlc3RvcmVfcmVzdWx0czsKKyAgICBj YWxsYmFja3NfbWlycm9yX2Rpc2tzLT5yZXN0b3JlX3Jlc3VsdHMgPSBsaWJ4bF9fc3JtX2NhbGxv dXRfY2FsbGJhY2tfcmVzdG9yZV9yZXN1bHRzOwogCiAgICAgLyogQ09MTyBvbmx5IHN1cHBvcnRz IEhWTSBub3cgYmVjYXVzZSBpdCBkb2VzIG5vdCB3b3JrIHZlcnkKICAgICAgKiB3ZWxsIHdpdGgg cHYgZHJpdmVyczoKQEAgLTExMDYsNyArMTE2NCwyMSBAQCBzdGF0aWMgdm9pZCBkb21jcmVhdGVf Ym9vdGxvYWRlcl9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICBkY3MtPnNycy5mZCA9IHJlc3Rv cmVfZmQ7CiAgICAgZGNzLT5zcnMubGVnYWN5ID0gKGRjcy0+cmVzdG9yZV9wYXJhbXMuc3RyZWFt X3ZlcnNpb24gPT0gMSk7CiAgICAgZGNzLT5zcnMuYmFja19jaGFubmVsID0gZmFsc2U7Ci0gICAg ZGNzLT5zcnMuY29tcGxldGlvbl9jYWxsYmFjayA9IGRvbWNyZWF0ZV9zdHJlYW1fZG9uZTsKKyAg ICBkY3MtPnNycy5taXJyb3JfZGlza3MgPSAwOworCisgICAgaWYgKGRjcy0+bWlycm9yX2Rpc2tz KSB7CisgICAgICAgIGRjcy0+c3JzX21pcnJvcl9kaXNrcy5hbyA9IGFvOworICAgICAgICBkY3Mt PnNyc19taXJyb3JfZGlza3MuZGNzID0gZGNzOworICAgICAgICBkY3MtPnNyc19taXJyb3JfZGlz a3MuZmQgPSByZXN0b3JlX2ZkOworICAgICAgICBkY3MtPnNyc19taXJyb3JfZGlza3MubGVnYWN5 ID0gKGRjcy0+cmVzdG9yZV9wYXJhbXMuc3RyZWFtX3ZlcnNpb24gPT0gMSk7CisgICAgICAgIGRj cy0+c3JzX21pcnJvcl9kaXNrcy5iYWNrX2NoYW5uZWwgPSBmYWxzZTsKKyAgICAgICAgZGNzLT5z cnNfbWlycm9yX2Rpc2tzLmNvbXBsZXRpb25fY2FsbGJhY2sgPSBkb21jcmVhdGVfc3RyZWFtX2Rv bmU7CisgICAgICAgIGRjcy0+c3JzX21pcnJvcl9kaXNrcy5taXJyb3JfZGlza3MgPSAxOworCisg ICAgICAgIGRjcy0+c3JzLmNvbXBsZXRpb25fY2FsbGJhY2sgPSBkb21jcmVhdGVfcG9zdF9taXJy b3JfZGlza3Nfc3RyZWFtX2RvbmU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGNzLT5zcnMuY29t cGxldGlvbl9jYWxsYmFjayA9IGRvbWNyZWF0ZV9zdHJlYW1fZG9uZTsKKyAgICB9CiAKICAgICBp ZiAocmVzdG9yZV9mZCA+PSAwKSB7CiAgICAgICAgIHN3aXRjaCAoY2hlY2twb2ludGVkX3N0cmVh bSkgewpAQCAtMTEyNCw3ICsxMTk2LDExIEBAIHN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9ib290bG9h ZGVyX2RvbmUobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgbGlieGxfX3JlbXVzX3Jlc3Rv cmVfc2V0dXAoZWdjLCBkY3MpOwogICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAg ICAgIGNhc2UgTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVBTV9OT05FOgotICAgICAgICAgICAgbGli eGxfX3N0cmVhbV9yZWFkX3N0YXJ0KGVnYywgJmRjcy0+c3JzKTsKKyAgICAgICAgICAgIGlmIChk Y3MtPm1pcnJvcl9kaXNrcykgeworICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1fcmVhZF9z dGFydChlZ2MsICZkY3MtPnNyc19taXJyb3JfZGlza3MpOworICAgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhcnQoZWdjLCAmZGNzLT5zcnMp OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0x MTQ2LDYgKzEyMjIsMzcgQEAgdm9pZCBsaWJ4bF9fc3JtX2NhbGxvdXRfY2FsbGJhY2tfcmVzdG9y ZV9yZXN1bHRzKHhlbl9wZm5fdCBzdG9yZV9tZm4sCiAgICAgc2hzLT5uZWVkX3Jlc3VsdHMgPSAg ICAgICAgICAgMDsKIH0KIAorc3RhdGljIHZvaWQgZG9tY3JlYXRlX3Bvc3RfbWlycm9yX2Rpc2tz X3N0cmVhbV9kb25lKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgKnNycywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg cmV0KQoreworICAgIGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlICpkY3MgPSBzcnMtPmRjczsK KyAgICBTVEFURV9BT19HQyhkY3MtPmFvKTsKKworICAgIGNvbnN0IHVpbnQzMl90IGRvbWlkID0g ZGNzLT5ndWVzdF9kb21pZDsKKyAgICBjb25zdCBjaGFyKiB1cmk7CisgICAgY29uc3QgY2hhciog c3RhdGVfZmlsZSA9IEdDU1BSSU5URigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElC WExfREVWSUNFX01PREVMX1JFU1RPUkVfRklMRSIuJWQiLCBkb21pZCk7CisgICAgaWYgKHJldCkK KyAgICAgICAgZ290byBlcnJvcl9vdXQ7CisKKyAgICByZXQgPSBsaWJ4bF9fcW1wX25iZF9zZXJ2 ZXJfc3RvcChnYywgZG9taWQpOworICAgIGlmIChyZXQpeworICAgICAgICBMT0dEKEVSUk9SLCBk b21pZCwgIkZhaWxlZCB0byBzdG9wIE5CRCBzZXJ2ZXIiKTsKKyAgICAgICAgZ290byBlcnJvcl9v dXQ7CisgICAgfQorICAgIHVyaSA9IEdDU1BSSU5URigiZXhlYzogL2Jpbi9jYXQgJXMiLCBzdGF0 ZV9maWxlKTsKKyAgICByZXQgPSBsaWJ4bF9fcW1wX21pZ3JhdGVfaW5jb21pbmcoZ2MsIGRvbWlk LCB1cmkpOworICAgIGlmIChyZXQpCisgICAgICAgIGdvdG8gZXJyb3Jfb3V0OworICAgIGRvbWNy ZWF0ZV9kZXZtb2RlbF9zdGFydGVkKGVnYywgJmRjcy0+c2Rzcy5kbSwgcmV0KTsKKyAgICByZXR1 cm47CisKK2Vycm9yX291dDoKKyAgICBhc3NlcnQocmV0KTsKKyAgICBkb21jcmVhdGVfY29tcGxl dGUoZWdjLCBkY3MsIHJldCk7Cit9CisKIHN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9zdHJlYW1fZG9u ZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX3N0cmVhbV9yZWFkX3N0YXRlICpzcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHJldCkKQEAgLTEyMTIsNyArMTMxOSw3IEBAIHN0YXRpYyB2b2lkIGRvbWNyZWF0 ZV9zdHJlYW1fZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgaWYgKHJldCkKICAgICAgICAgZ290 byBvdXQ7CiAKLSAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pIHsK KyAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0gJiYgIWRjcy0+bWly cm9yX2Rpc2tzKSB7CiAgICAgICAgIHN0YXRlLT5zYXZlZF9zdGF0ZSA9IEdDU1BSSU5URigKICAg ICAgICAgICAgICAgICAgICAgICAgTElCWExfREVWSUNFX01PREVMX1JFU1RPUkVfRklMRSIuJWQi LCBkb21pZCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwu aCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggZWU2MmJmYi4uZmViOTM3MCAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0zMTE4LDYgKzMxMTgsNyBAQCBzdHJ1Y3QgbGlieGxfX3N0 cmVhbV9yZWFkX3N0YXRlIHsKICAgICBpbnQgZmQ7CiAgICAgYm9vbCBsZWdhY3k7CiAgICAgYm9v bCBiYWNrX2NoYW5uZWw7CisgICAgaW50IG1pcnJvcl9kaXNrczsKICAgICB2b2lkICgqY29tcGxl dGlvbl9jYWxsYmFjaykobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgKnNycywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHJjKTsKQEAgLTM3NzQsNiArMzc3NSw3IEBAIHN0cnVjdCBsaWJ4 bF9fZG9tYWluX2NyZWF0ZV9zdGF0ZSB7CiAgICAgICAgIC8qIElmIHdlJ3JlIG5vdCBkb2luZyBz dHViZG9tLCB3ZSB1c2Ugb25seSBkbXNzLmRtLAogICAgICAgICAgKiBmb3IgdGhlIG5vbi1zdHVi ZG9tIGRldmljZSBtb2RlbC4gKi8KICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgc3JzOwor ICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSBzcnNfbWlycm9yX2Rpc2tzOwogICAgIC8qIG5l Y2Vzc2FyeSBpZiB0aGUgZG9tYWluIGNyZWF0aW9uIGZhaWxlZCBhbmQgd2UgaGF2ZSB0byBkZXN0 cm95IGl0ICovCiAgICAgbGlieGxfX2RvbWFpbl9kZXN0cm95X3N0YXRlIGRkczsKICAgICBsaWJ4 bF9fbXVsdGlkZXYgbXVsdGlkZXY7Ci0tIAoyLjMuMiAoQXBwbGUgR2l0LTU1KQoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=