From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulina Szubarczyk Subject: [PATCH v5 2/2] qdisk - hw/block/xen_disk: grant copy implementation Date: Tue, 16 Aug 2016 08:55:56 +0200 Message-ID: <1471330556-782-3-git-send-email-paulinaszubarczyk__38713.4784403772$1471330647$gmane$org@gmail.com> References: <1471330556-782-1-git-send-email-paulinaszubarczyk@gmail.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 1bZYIL-0003D9-Bt for xen-devel@lists.xenproject.org; Tue, 16 Aug 2016 06:56:17 +0000 Received: by mail-wm0-f68.google.com with SMTP id o80so14745516wme.0 for ; Mon, 15 Aug 2016 23:56:13 -0700 (PDT) In-Reply-To: <1471330556-782-1-git-send-email-paulinaszubarczyk@gmail.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, roger.pau@citrix.com Cc: sstabellini@kernel.org, wei.liu2@citrix.com, Paulina Szubarczyk , ian.jackson@eu.citrix.com, qemu-devel@nongnu.org, david.vrabel@citrix.com, anthony.perard@citrix.com List-Id: xen-devel@lists.xenproject.org Q29weSBkYXRhIG9wZXJhdGVkIG9uIGR1cmluZyByZXF1ZXN0IGZyb20vdG8gbG9jYWwgYnVmZmVy cyB0by9mcm9tCnRoZSBncmFudCByZWZlcmVuY2VzLgoKQmVmb3JlIGdyYW50IGNvcHkgb3BlcmF0 aW9uIGxvY2FsIGJ1ZmZlcnMgbXVzdCBiZSBhbGxvY2F0ZWQgd2hhdCBpcwpkb25lIGJ5IGNhbGxp bmcgaW9yZXFfaW5pdF9jb3B5X2J1ZmZlcnMuIEZvciB0aGUgJ3JlYWQnIG9wZXJhdGlvbiwKZmly c3QsIHRoZSBxZW11IGRldmljZSBpbnZva2VzIHRoZSByZWFkIG9wZXJhdGlvbiBvbiBsb2NhbCBi dWZmZXJzCmFuZCBvbiB0aGUgY29tcGxldGlvbiBncmFudCBjb3B5IGlzIGNhbGxlZCBhbmQgYnVm ZmVycyBhcmUgZnJlZWQuCkZvciB0aGUgJ3dyaXRlJyBvcGVyYXRpb24gZ3JhbnQgY29weSBpcyBw ZXJmb3JtZWQgYmVmb3JlIGludm9raW5nCndyaXRlIGJ5IHFlbXUgZGV2aWNlLgoKQSBuZXcgdmFs dWUgJ2ZlYXR1cmVfZ3JhbnRfY29weScgaXMgYWRkZWQgdG8gcmVjb2duaXplIHdoZW4gdGhlCmdy YW50IGNvcHkgb3BlcmF0aW9uIGlzIHN1cHBvcnRlZCBieSBhIGd1ZXN0LgoKU2lnbmVkLW9mZi1i eTogUGF1bGluYSBTenViYXJjenlrIDxwYXVsaW5hc3p1YmFyY3p5a0BnbWFpbC5jb20+Ci0tLQpD aGFuZ2VzIHNpbmNlIHY0OgotIGluIHRoZSBjb25maWd1cmUgZmlsZSBjaGVjayBvbmx5IGlmIHhl bmdudHRhYl9ncmFudF9jb3B5IGlzCiAgaW1wbGVtZW50ZWQgdG8gdmVyaWZ5IDQ4MCB2ZXJzaW9u IG9mIFhlbi4KLSByZW1vdmUgciB2YXJpYWJsZSBhbmQgaW5pdGlhbGl6YXRpb24gb2YgY291bnQg dG8gMCBpbgogIGlvcmVxX2NvcHkuCgotIHN1cnJvdW5kIGZyZWVfYnVmZmVycywgaW9yZXFfaW5p dF9jb3B5X2J1ZmZlcnMgYW5kIGlvcmVxX2NvcHkKICBieSAiI2lmIENPTkZJR19YRU5fQ1RSTF9J TlRFUkZBQ0VfVkVSU0lPTiA+PSA0ODAiIGFib3J0IGluIGVsc2UKICBwYXRoIGJlY2F1c2UgdGhl IGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIHRoYXQgY2FzZS4KLSByZXBsYWNlIHRo ZSBkZWZpbml0aW9uIG9mIHN0cnVjdCB4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50CiAgYW5k IGEgdHlwZWRlZiB0byBpdCB3aXRoCiAgJ3R5cGVkZWYgdm9pZCogeGVuZ250dGFiX2dyYW50X2Nv cHlfc2VnbWVudF90Jy4KLSBtb3ZlZCB0aGUgbmV3IGNvZGUgaW4gdGhlIHhlbl9jb21tb24uaCB0 byB0aGUgZW5kIG9mIHRoZSBmaWxlLgotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgICB8 ICAzNyArKysrKysrKysrKwogaHcvYmxvY2sveGVuX2Rpc2suYyAgICAgICAgIHwgMTU3ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBpbmNsdWRlL2h3L3hlbi94 ZW5fY29tbW9uLmggfCAgMTQgKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMDMgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5k ZXggOGQ4NDkxOS4uNjhiMzM3NCAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3Vy ZQpAQCAtMTk1Niw2ICsxOTU2LDQzIEBAIEVPRgogLyoKICAqIElmIHdlIGhhdmUgc3RhYmxlIGxp YnMgdGhlIHdlIGRvbid0IHdhbnQgdGhlIGxpYnhjIGNvbXBhdAogICogbGF5ZXJzLCByZWdhcmRs ZXNzIG9mIHdoYXQgQ0ZMQUdTIHdlIG1heSBoYXZlIGJlZW4gZ2l2ZW4uCisgKgorICogQWxzbywg Y2hlY2sgaWYgeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90IGlzIGRlZmluZWQgYW5kCisg KiBncmFudCBjb3B5IG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZC4KKyAqLworI3VuZGVmIFhDX1dB TlRfQ09NUEFUX0VWVENITl9BUEkKKyN1bmRlZiBYQ19XQU5UX0NPTVBBVF9HTlRUQUJfQVBJCisj dW5kZWYgWENfV0FOVF9DT01QQVRfTUFQX0ZPUkVJR05fQVBJCisjaW5jbHVkZSA8eGVuY3RybC5o PgorI2luY2x1ZGUgPHhlbnN0b3JlLmg+CisjaW5jbHVkZSA8eGVuZXZ0Y2huLmg+CisjaW5jbHVk ZSA8eGVuZ250dGFiLmg+CisjaW5jbHVkZSA8eGVuZm9yZWlnbm1lbW9yeS5oPgorI2luY2x1ZGUg PHN0ZGludC5oPgorI2luY2x1ZGUgPHhlbi9odm0vaHZtX2luZm9fdGFibGUuaD4KKyNpZiAhZGVm aW5lZChIVk1fTUFYX1ZDUFVTKQorIyBlcnJvciBIVk1fTUFYX1ZDUFVTIG5vdCBkZWZpbmVkCisj ZW5kaWYKK2ludCBtYWluKHZvaWQpIHsKKyAgeGVuZ250dGFiX2hhbmRsZSAqeGc7CisgIHhlbmdu dHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCogc2VnID0gTlVMTDsKKworICB4ZyA9IHhlbmdudHRh Yl9vcGVuKDAsIDApOworICB4ZW5nbnR0YWJfbWFwX2dyYW50X3JlZih4ZywgMCwgMCwgMCk7Cisg IHhlbmdudHRhYl9ncmFudF9jb3B5KHhnLCAwLCBzZWcpOworCisgIHJldHVybiAwOworfQorRU9G CisgICAgICBjb21waWxlX3Byb2cgIiIgIiR4ZW5fbGlicyAkeGVuX3N0YWJsZV9saWJzIgorICAg IHRoZW4KKyAgICB4ZW5fY3RybF92ZXJzaW9uPTQ4MAorICAgIHhlbj15ZXMKKyAgZWxpZgorICAg ICAgY2F0ID4gJFRNUEMgPDxFT0YgJiYKKy8qCisgKiBJZiB3ZSBoYXZlIHN0YWJsZSBsaWJzIHRo ZSB3ZSBkb24ndCB3YW50IHRoZSBsaWJ4YyBjb21wYXQKKyAqIGxheWVycywgcmVnYXJkbGVzcyBv ZiB3aGF0IENGTEFHUyB3ZSBtYXkgaGF2ZSBiZWVuIGdpdmVuLgogICovCiAjdW5kZWYgWENfV0FO VF9DT01QQVRfRVZUQ0hOX0FQSQogI3VuZGVmIFhDX1dBTlRfQ09NUEFUX0dOVFRBQl9BUEkKZGlm ZiAtLWdpdCBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMgYi9ody9ibG9jay94ZW5fZGlzay5jCmluZGV4 IDNiOGFkMzMuLjM3MzllMTMgMTAwNjQ0Ci0tLSBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMKKysrIGIv aHcvYmxvY2sveGVuX2Rpc2suYwpAQCAtMTE5LDYgKzExOSw5IEBAIHN0cnVjdCBYZW5CbGtEZXYg ewogICAgIHVuc2lnbmVkIGludCAgICAgICAgcGVyc2lzdGVudF9nbnRfY291bnQ7CiAgICAgdW5z aWduZWQgaW50ICAgICAgICBtYXhfZ3JhbnRzOwogCisgICAgLyogR3JhbnQgY29weSAqLworICAg IGdib29sZWFuICAgICAgICAgICAgZmVhdHVyZV9ncmFudF9jb3B5OworCiAgICAgLyogcWVtdSBi bG9jayBkcml2ZXIgKi8KICAgICBEcml2ZUluZm8gICAgICAgICAgICpkaW5mbzsKICAgICBCbG9j a0JhY2tlbmQgICAgICAgICpibGs7CkBAIC00ODksNiArNDkyLDEwOCBAQCBzdGF0aWMgaW50IGlv cmVxX21hcChzdHJ1Y3QgaW9yZXEgKmlvcmVxKQogICAgIHJldHVybiAwOwogfQogCisjaWYgQ09O RklHX1hFTl9DVFJMX0lOVEVSRkFDRV9WRVJTSU9OID49IDQ4MAorCitzdGF0aWMgdm9pZCBmcmVl X2J1ZmZlcnMoc3RydWN0IGlvcmVxICppb3JlcSkKK3sKKyAgICBpbnQgaTsKKworICAgIGZvciAo aSA9IDA7IGkgPCBpb3JlcS0+di5uaW92OyBpKyspIHsKKyAgICAgICAgaW9yZXEtPnBhZ2VbaV0g PSBOVUxMOworICAgIH0KKworICAgIHFlbXVfdmZyZWUoaW9yZXEtPnBhZ2VzKTsKK30KKworc3Rh dGljIGludCBpb3JlcV9pbml0X2NvcHlfYnVmZmVycyhzdHJ1Y3QgaW9yZXEgKmlvcmVxKQorewor ICAgIGludCBpOworCisgICAgaWYgKGlvcmVxLT52Lm5pb3YgPT0gMCkgeworICAgICAgICByZXR1 cm4gMDsKKyAgICB9CisKKyAgICBpb3JlcS0+cGFnZXMgPSBxZW11X21lbWFsaWduKFhDX1BBR0Vf U0laRSwgaW9yZXEtPnYubmlvdiAqIFhDX1BBR0VfU0laRSk7CisKKyAgICBmb3IgKGkgPSAwOyBp IDwgaW9yZXEtPnYubmlvdjsgaSsrKSB7CisgICAgICAgIGlvcmVxLT5wYWdlW2ldID0gaW9yZXEt PnBhZ2VzICsgaSAqIFhDX1BBR0VfU0laRTsKKyAgICAgICAgaW9yZXEtPnYuaW92W2ldLmlvdl9i YXNlID0gaW9yZXEtPnBhZ2VbaV07CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQgaW9yZXFfY29weShzdHJ1Y3QgaW9yZXEgKmlvcmVxKQoreworICAgIHhlbmdudHRhYl9o YW5kbGUgKmdudCA9IGlvcmVxLT5ibGtkZXYtPnhlbmRldi5nbnR0YWJkZXY7CisgICAgeGVuZ250 dGFiX2dyYW50X2NvcHlfc2VnbWVudF90IHNlZ3NbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFV RVNUXTsKKyAgICBpbnQgaSwgY291bnQsIHJjOworICAgIGludDY0X3QgZmlsZV9ibGsgPSBpb3Jl cS0+YmxrZGV2LT5maWxlX2JsazsKKworICAgIGlmIChpb3JlcS0+di5uaW92ID09IDApIHsKKyAg ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgY291bnQgPSBpb3JlcS0+di5uaW92OworCisg ICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKworICAgICAgICBpZiAoaW9yZXEtPnJl cS5vcGVyYXRpb24gPT0gQkxLSUZfT1BfUkVBRCkgeworICAgICAgICAgICAgc2Vnc1tpXS5mbGFn cyA9IEdOVENPUFlfZGVzdF9ncmVmOworICAgICAgICAgICAgc2Vnc1tpXS5kZXN0LmZvcmVpZ24u cmVmID0gaW9yZXEtPnJlZnNbaV07CisgICAgICAgICAgICBzZWdzW2ldLmRlc3QuZm9yZWlnbi5k b21pZCA9IGlvcmVxLT5kb21pZHNbaV07CisgICAgICAgICAgICBzZWdzW2ldLmRlc3QuZm9yZWln bi5vZmZzZXQgPSBpb3JlcS0+cmVxLnNlZ1tpXS5maXJzdF9zZWN0ICogZmlsZV9ibGs7CisgICAg ICAgICAgICBzZWdzW2ldLnNvdXJjZS52aXJ0ID0gaW9yZXEtPnYuaW92W2ldLmlvdl9iYXNlOwor ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2Vnc1tpXS5mbGFncyA9IEdOVENPUFlfc291 cmNlX2dyZWY7CisgICAgICAgICAgICBzZWdzW2ldLnNvdXJjZS5mb3JlaWduLnJlZiA9IGlvcmVx LT5yZWZzW2ldOworICAgICAgICAgICAgc2Vnc1tpXS5zb3VyY2UuZm9yZWlnbi5kb21pZCA9IGlv cmVxLT5kb21pZHNbaV07CisgICAgICAgICAgICBzZWdzW2ldLnNvdXJjZS5mb3JlaWduLm9mZnNl dCA9IGlvcmVxLT5yZXEuc2VnW2ldLmZpcnN0X3NlY3QgKiBmaWxlX2JsazsKKyAgICAgICAgICAg IHNlZ3NbaV0uZGVzdC52aXJ0ID0gaW9yZXEtPnYuaW92W2ldLmlvdl9iYXNlOworICAgICAgICB9 CisgICAgICAgIHNlZ3NbaV0ubGVuID0gKGlvcmVxLT5yZXEuc2VnW2ldLmxhc3Rfc2VjdAorICAg ICAgICAgICAgICAgICAgICAgICAtIGlvcmVxLT5yZXEuc2VnW2ldLmZpcnN0X3NlY3QgKyAxKSAq IGZpbGVfYmxrOworCisgICAgfQorCisgICAgcmMgPSB4ZW5nbnR0YWJfZ3JhbnRfY29weShnbnQs IGNvdW50LCBzZWdzKTsKKworICAgIGlmIChyYykgeworICAgICAgICB4ZW5fYmVfcHJpbnRmKCZp b3JlcS0+YmxrZGV2LT54ZW5kZXYsIDAsCisgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0 byBjb3B5IGRhdGEgJWRcbiIsIHJjKTsKKyAgICAgICAgaW9yZXEtPmFpb19lcnJvcnMrKzsKKyAg ICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsr KSB7CisgICAgICAgIGlmIChzZWdzW2ldLnN0YXR1cyAhPSBHTlRTVF9va2F5KSB7CisgICAgICAg ICAgICB4ZW5fYmVfcHJpbnRmKCZpb3JlcS0+YmxrZGV2LT54ZW5kZXYsIDMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gY29weSBkYXRhICVkIGZvciBncmVmICVkLCBkb21p ZCAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vnc1tpXS5zdGF0dXMsIGlvcmVx LT5yZWZzW2ldLCBpb3JlcS0+ZG9taWRzW2ldKTsKKyAgICAgICAgICAgIGlvcmVxLT5haW9fZXJy b3JzKys7CisgICAgICAgICAgICByYyA9IC0xOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0 dXJuIHJjOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIGZyZWVfYnVmZmVycyhzdHJ1Y3QgaW9yZXEg KmlvcmVxKQoreworICAgIGFib3J0KCk7Cit9CisKK3N0YXRpYyBpbnQgaW9yZXFfaW5pdF9jb3B5 X2J1ZmZlcnMoc3RydWN0IGlvcmVxICppb3JlcSkKK3sKKyAgICBhYm9ydCgpOworfQorCitzdGF0 aWMgaW50IGlvcmVxX2NvcHkoc3RydWN0IGlvcmVxICppb3JlcSkKK3sKKyAgICBhYm9ydCgpOwor fQorI2VuZGlmCisKIHN0YXRpYyBpbnQgaW9yZXFfcnVuaW9fcWVtdV9haW8oc3RydWN0IGlvcmVx ICppb3JlcSk7CiAKIHN0YXRpYyB2b2lkIHFlbXVfYWlvX2NvbXBsZXRlKHZvaWQgKm9wYXF1ZSwg aW50IHJldCkKQEAgLTUxMSw4ICs2MTYsMzEgQEAgc3RhdGljIHZvaWQgcWVtdV9haW9fY29tcGxl dGUodm9pZCAqb3BhcXVlLCBpbnQgcmV0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg aWYgKGlvcmVxLT5ibGtkZXYtPmZlYXR1cmVfZ3JhbnRfY29weSkgeworICAgICAgICBzd2l0Y2gg KGlvcmVxLT5yZXEub3BlcmF0aW9uKSB7CisgICAgICAgIGNhc2UgQkxLSUZfT1BfUkVBRDoKKyAg ICAgICAgICAgIC8qIGluIGNhc2Ugb2YgZmFpbHVyZSBpb3JlcS0+YWlvX2Vycm9ycyBpcyBpbmNy ZWFzZWQgKi8KKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIGlv cmVxX2NvcHkoaW9yZXEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZnJlZV9idWZmZXJz KGlvcmVxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJMS0lGX09QX1dSSVRF OgorICAgICAgICBjYXNlIEJMS0lGX09QX0ZMVVNIX0RJU0tDQUNIRToKKyAgICAgICAgICAgIGlm ICghaW9yZXEtPnJlcS5ucl9zZWdtZW50cykgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgfQorICAgICAgICAgICAgZnJlZV9idWZmZXJzKGlvcmVxKTsKKyAgICAgICAgICAg IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K KyAgICB9CisKICAgICBpb3JlcS0+c3RhdHVzID0gaW9yZXEtPmFpb19lcnJvcnMgPyBCTEtJRl9S U1BfRVJST1IgOiBCTEtJRl9SU1BfT0tBWTsKLSAgICBpb3JlcV91bm1hcChpb3JlcSk7CisgICAg aWYgKCFpb3JlcS0+YmxrZGV2LT5mZWF0dXJlX2dyYW50X2NvcHkpIHsKKyAgICAgICAgaW9yZXFf dW5tYXAoaW9yZXEpOworICAgIH0KICAgICBpb3JlcV9maW5pc2goaW9yZXEpOwogICAgIHN3aXRj aCAoaW9yZXEtPnJlcS5vcGVyYXRpb24pIHsKICAgICBjYXNlIEJMS0lGX09QX1dSSVRFOgpAQCAt NTM4LDggKzY2NiwyMCBAQCBzdGF0aWMgaW50IGlvcmVxX3J1bmlvX3FlbXVfYWlvKHN0cnVjdCBp b3JlcSAqaW9yZXEpCiB7CiAgICAgc3RydWN0IFhlbkJsa0RldiAqYmxrZGV2ID0gaW9yZXEtPmJs a2RldjsKIAotICAgIGlmIChpb3JlcS0+cmVxLm5yX3NlZ21lbnRzICYmIGlvcmVxX21hcChpb3Jl cSkgPT0gLTEpIHsKLSAgICAgICAgZ290byBlcnJfbm9fbWFwOworICAgIGlmIChpb3JlcS0+Ymxr ZGV2LT5mZWF0dXJlX2dyYW50X2NvcHkpIHsKKyAgICAgICAgaW9yZXFfaW5pdF9jb3B5X2J1ZmZl cnMoaW9yZXEpOworICAgICAgICBpZiAoaW9yZXEtPnJlcS5ucl9zZWdtZW50cyAmJiAoaW9yZXEt PnJlcS5vcGVyYXRpb24gPT0gQkxLSUZfT1BfV1JJVEUgfHwKKyAgICAgICAgICAgIGlvcmVxLT5y ZXEub3BlcmF0aW9uID09IEJMS0lGX09QX0ZMVVNIX0RJU0tDQUNIRSkpIHsKKyAgICAgICAgICAg IGlmIChpb3JlcV9jb3B5KGlvcmVxKSkgeworICAgICAgICAgICAgICAgIGZyZWVfYnVmZmVycyhp b3JlcSk7CisgICAgICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgICAgICB9CisgICAgICAg IH0KKworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChpb3JlcS0+cmVxLm5yX3NlZ21lbnRzICYm IGlvcmVxX21hcChpb3JlcSkpIHsKKyAgICAgICAgICAgIGdvdG8gZXJyOworICAgICAgICB9CiAg ICAgfQogCiAgICAgaW9yZXEtPmFpb19pbmZsaWdodCsrOwpAQCAtNTgyLDYgKzcyMiw5IEBAIHN0 YXRpYyBpbnQgaW9yZXFfcnVuaW9fcWVtdV9haW8oc3RydWN0IGlvcmVxICppb3JlcSkKICAgICB9 CiAgICAgZGVmYXVsdDoKICAgICAgICAgLyogdW5rbm93biBvcGVyYXRpb24gKHNob3VsZG4ndCBo YXBwZW4gLS0gcGFyc2UgY2F0Y2hlcyB0aGlzKSAqLworICAgICAgICBpZiAoIWlvcmVxLT5ibGtk ZXYtPmZlYXR1cmVfZ3JhbnRfY29weSkgeworICAgICAgICAgICAgaW9yZXFfdW5tYXAoaW9yZXEp OworICAgICAgICB9CiAgICAgICAgIGdvdG8gZXJyOwogICAgIH0KIApAQCAtNTkwLDggKzczMyw2 IEBAIHN0YXRpYyBpbnQgaW9yZXFfcnVuaW9fcWVtdV9haW8oc3RydWN0IGlvcmVxICppb3JlcSkK ICAgICByZXR1cm4gMDsKIAogZXJyOgotICAgIGlvcmVxX3VubWFwKGlvcmVxKTsKLWVycl9ub19t YXA6CiAgICAgaW9yZXFfZmluaXNoKGlvcmVxKTsKICAgICBpb3JlcS0+c3RhdHVzID0gQkxLSUZf UlNQX0VSUk9SOwogICAgIHJldHVybiAtMTsKQEAgLTEwMzIsNiArMTE3MywxMiBAQCBzdGF0aWMg aW50IGJsa19jb25uZWN0KHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldikKIAogICAgIHhlbl9iZV9i aW5kX2V2dGNobigmYmxrZGV2LT54ZW5kZXYpOwogCisgICAgYmxrZGV2LT5mZWF0dXJlX2dyYW50 X2NvcHkgPQorICAgICAgICAgICAgICAgICh4ZW5nbnR0YWJfZ3JhbnRfY29weShibGtkZXYtPnhl bmRldi5nbnR0YWJkZXYsIDAsIE5VTEwpID09IDApOworCisgICAgeGVuX2JlX3ByaW50ZigmYmxr ZGV2LT54ZW5kZXYsIDMsICJncmFudCBjb3B5IG9wZXJhdGlvbiAlc1xuIiwKKyAgICAgICAgICAg ICAgICAgIGJsa2Rldi0+ZmVhdHVyZV9ncmFudF9jb3B5ID8gImVuYWJsZWQiIDogImRpc2FibGVk Iik7CisKICAgICB4ZW5fYmVfcHJpbnRmKCZibGtkZXYtPnhlbmRldiwgMSwgIm9rOiBwcm90byAl cywgcmluZy1yZWYgJWQsICIKICAgICAgICAgICAgICAgICAgICJyZW1vdGUgcG9ydCAlZCwgbG9j YWwgcG9ydCAlZFxuIiwKICAgICAgICAgICAgICAgICAgIGJsa2Rldi0+eGVuZGV2LnByb3RvY29s LCBibGtkZXYtPnJpbmdfcmVmLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1v bi5oIGIvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oCmluZGV4IDY0MGMzMWUuLjZiMDc3NmYg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaAorKysgYi9pbmNsdWRlL2h3 L3hlbi94ZW5fY29tbW9uLmgKQEAgLTM2OSw0ICszNjksMTggQEAgc3RhdGljIGlubGluZSBpbnQg eGVuX2RvbWFpbl9jcmVhdGUoeGNfaW50ZXJmYWNlICp4YywgdWludDMyX3Qgc3NpZHJlZiwKICNl bmRpZgogI2VuZGlmCiAKKy8qIFhlbiBiZWZvcmUgNC44ICovCisKKyNpZiBDT05GSUdfWEVOX0NU UkxfSU5URVJGQUNFX1ZFUlNJT04gPCA0ODAKKworCit0eXBlZGVmIHZvaWQgKnhlbmdudHRhYl9n cmFudF9jb3B5X3NlZ21lbnRfdDsKKworc3RhdGljIGlubGluZSBpbnQgeGVuZ250dGFiX2dyYW50 X2NvcHkoeGVuZ250dGFiX2hhbmRsZSAqeGd0LCB1aW50MzJfdCBjb3VudCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRf dCAqc2VncykKK3sKKyAgICByZXR1cm4gLUVOT1NZUzsKK30KKyNlbmRpZgorCiAjZW5kaWYgLyog UUVNVV9IV19YRU5fQ09NTU9OX0ggKi8KLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==